PHP Cheat Sheet đầy đủ

PHP Cheat Sheet đầy đủ: Cú pháp, Hàm và Ví dụ

PHP Cheat Sheet đầy đủ dành cho người mới và lập trình viên, tổng hợp cú pháp PHP, toán tử, hàm, mảng, chuỗi, Form, Session, Cookie, PDO, OOP, Exception cùng nhiều ví dụ thực tế giúp tra cứu nhanh và học PHP hiệu quả, chi tiết như nào hãy cùng chúng tôi phân tích:

PHP vẫn là một trong những ngôn ngữ lập trình web được sử dụng phổ biến nhất hiện nay. Từ các website cá nhân, blog, trang tin tức cho đến hệ thống thương mại điện tử hay các ứng dụng doanh nghiệp đều có thể được xây dựng bằng PHP. Trong quá trình học tập và làm việc, việc ghi nhớ toàn bộ cú pháp là điều không hề dễ dàng, đặc biệt với những người mới bắt đầu hoặc lập trình viên phải làm việc trên nhiều ngôn ngữ khác nhau.

Bài viết này tổng hợp một PHP Cheat Sheet đầy đủ, được sắp xếp theo từng chủ đề để bạn có thể tra cứu nhanh trong quá trình lập trình. Thay vì chỉ liệt kê cú pháp ngắn gọn, mỗi phần đều có giải thích và ví dụ thực tế nhằm giúp bạn hiểu rõ cách hoạt động cũng như biết khi nào nên sử dụng.

Nội dung được xây dựng dành cho người mới học PHP, lập trình viên đang ôn tập kiến thức cũng như những ai cần một tài liệu tham khảo nhanh khi phát triển website.

PHP Cheat Sheet đầy đủ

Tổng quan về PHP Cheat Sheet

Cheat Sheet là tài liệu tổng hợp các cú pháp, hàm và kiến thức quan trọng dưới dạng ngắn gọn, giúp người lập trình tiết kiệm thời gian tìm kiếm tài liệu. Thay vì phải mở tài liệu chính thức cho từng vấn đề nhỏ, bạn chỉ cần xem nhanh bảng tổng hợp để nhớ lại cú pháp cần sử dụng.

Một PHP Cheat Sheet đầy đủ thường bao gồm:

  • Khai báo PHP.
  • Biến và hằng số.
  • Kiểu dữ liệu.
  • Toán tử.
  • Cấu trúc điều kiện.
  • Vòng lặp.
  • Hàm.
  • Mảng.
  • Chuỗi.
  • Làm việc với Form.
  • Session và Cookie.
  • File.
  • MySQL.
  • Lập trình hướng đối tượng.
  • Xử lý ngoại lệ.

Cách khai báo một chương trình PHP

Mọi đoạn mã PHP đều được đặt bên trong cặp thẻ mở và đóng của PHP. Máy chủ sẽ xử lý phần mã này trước khi trả về HTML cho trình duyệt.

<?php
echo "Hello World";
?>

Trong thực tế, nếu toàn bộ tệp chỉ chứa mã PHP thì thường không cần viết thẻ đóng để tránh phát sinh lỗi khoảng trắng ngoài ý muốn.

<?php

echo "Xin chào Web Mới";

Ghi chú trong PHP

Comment giúp giải thích chương trình hoặc tạm thời vô hiệu hóa một đoạn mã trong quá trình kiểm thử.

Ghi chú một dòng

<?php

// Đây là comment

# Đây cũng là comment

?>

Ghi chú nhiều dòng

<?php

/*
Đây là comment
nhiều dòng
*/

?>

Khai báo biến

Trong PHP, biến luôn bắt đầu bằng ký tự $. Không cần khai báo kiểu dữ liệu trước khi sử dụng vì PHP là ngôn ngữ có kiểu dữ liệu động.

<?php

$name = "Web Mới";
$age = 5;
$price = 199.5;
$isActive = true;

?>

Quy tắc đặt tên biến:

  • Bắt đầu bằng chữ cái hoặc dấu gạch dưới.
  • Không được bắt đầu bằng số.
  • Không chứa khoảng trắng.
  • Phân biệt chữ hoa và chữ thường.

Ví dụ hợp lệ:

<?php

$userName = "An";
$_email = "abc@example.com";
$productPrice = 100;

?>

Khai báo hằng số

Hằng số chỉ được gán giá trị một lần và không thể thay đổi trong quá trình chương trình chạy.

<?php

define("SITE_NAME", "Web Mới");

echo SITE_NAME;

?>

Từ PHP 7 trở lên cũng có thể sử dụng từ khóa const.

<?php

const VERSION = "8.3";

echo VERSION;

?>

Các kiểu dữ liệu cơ bản

PHP hỗ trợ nhiều kiểu dữ liệu khác nhau. Đây là những kiểu được sử dụng nhiều nhất trong lập trình web.

Kiểu dữ liệu Mô tả
string Chuỗi ký tự.
int Số nguyên.
float Số thực.
bool Giá trị đúng hoặc sai.
array Tập hợp nhiều phần tử.
object Đối tượng.
null Không có giá trị.

Ví dụ:

<?php

$name = "PHP";
$year = 2025;
$version = 8.4;
$isOpenSource = true;
$data = ["HTML", "CSS", "PHP"];
$empty = null;

?>

Xuất dữ liệu ra màn hình

Hai lệnh được sử dụng phổ biến nhất là echoprint.

Sử dụng echo

<?php

echo "Xin chào";
echo "<br>";
echo "Web Mới";

?>

Sử dụng print

<?php

print "Hello PHP";

?>

Trong hầu hết các trường hợp, echo được sử dụng nhiều hơn vì đơn giản và có hiệu năng tốt hơn một chút.

Ghép chuỗi

PHP sử dụng dấu chấm để nối nhiều chuỗi lại với nhau.

<?php

$firstName = "Web";
$lastName = "Mới";

echo $firstName . " " . $lastName;

?>

Cũng có thể kết hợp chuỗi với biến.

<?php

$name = "Nguyễn Văn A";

echo "Xin chào " . $name;

?>

Nội suy chuỗi

Khi sử dụng dấu nháy kép, PHP có thể tự động thay thế biến bằng giá trị của nó.

<?php

$name = "Lan";

echo "Xin chào $name";

?>

Nếu muốn rõ ràng hơn, nên sử dụng cặp ngoặc nhọn.

<?php

$product = "Laptop";

echo "Tên sản phẩm: {$product}";

?>

Kiểm tra kiểu dữ liệu

Trong quá trình xử lý dữ liệu, việc xác định kiểu dữ liệu giúp hạn chế nhiều lỗi không mong muốn.

<?php

$value = 100;

var_dump($value);

?>

Một số hàm thường dùng:

  • is_string()
  • is_int()
  • is_float()
  • is_bool()
  • is_array()
  • is_object()
  • is_null()
  • gettype()
<?php

$name = "PHP";

echo gettype($name);

?>

Toán tử trong PHP

Toán tử là thành phần không thể thiếu trong mọi chương trình PHP. Chúng được sử dụng để thực hiện phép tính, so sánh giá trị, kết hợp điều kiện và thao tác với biến. Việc nắm rõ các nhóm toán tử sẽ giúp bạn viết mã ngắn gọn và chính xác hơn.

Toán tử số học

Toán tử Ý nghĩa Ví dụ
+ Cộng $a + $b
- Trừ $a - $b
* Nhân $a * $b
/ Chia $a / $b
% Chia lấy dư $a % $b
** Lũy thừa $a ** $b
<?php

$a = 15;
$b = 4;

echo $a + $b;
echo "<br>";
echo $a - $b;
echo "<br>";
echo $a * $b;
echo "<br>";
echo $a / $b;
echo "<br>";
echo $a % $b;
echo "<br>";
echo $a ** 2;

?>

Toán tử gán

Toán tử Ý nghĩa
= Gán giá trị
+= Cộng rồi gán
-= Trừ rồi gán
*= Nhân rồi gán
/= Chia rồi gán
%= Chia lấy dư rồi gán
.= Nối chuỗi rồi gán
<?php

$total = 100;

$total += 50;
$total -= 20;
$total *= 2;
$total /= 5;

echo $total;

?>

Toán tử so sánh

Toán tử Ý nghĩa
== Bằng
=== Bằng cả giá trị và kiểu dữ liệu
!= Khác
Khác
!== Khác cả giá trị và kiểu dữ liệu
> Lớn hơn
Nhỏ hơn
>= Lớn hơn hoặc bằng
Nhỏ hơn hoặc bằng
Spaceship Operator
<?php

$a = 10;
$b = "10";

var_dump($a == $b);
var_dump($a === $b);
var_dump($a != $b);
var_dump($a !== $b);

?>

Toán tử logic

Toán tử Ý nghĩa
&& AND
|| OR
! NOT
and AND
or OR
xor XOR
<?php

$age = 20;
$isMember = true;

if ($age >= 18 && $isMember) {
    echo "Được phép truy cập";
}

?>

Toán tử tăng giảm

Toán tử Ý nghĩa
++$a Tăng trước
$a++ Tăng sau
--$a Giảm trước
$a-- Giảm sau
<?php

$x = 5;

echo ++$x;
echo "<br>";
echo $x++;

?>

Toán tử Null Coalescing

Đây là toán tử rất hữu ích khi xử lý dữ liệu từ Form, Session hoặc mảng.

<?php

$username = $_GET["username"] ?? "Khách";

echo $username;

?>

Toán tử Null Coalescing Assignment

<?php

$name ??= "Web Mới";

echo $name;

?>

Toán tử ba ngôi

<?php

$age = 16;

$result = $age >= 18 ? "Người lớn" : "Trẻ em";

echo $result;

?>

Cấu trúc điều kiện

Cấu trúc điều kiện cho phép chương trình thực hiện các nhánh xử lý khác nhau dựa trên giá trị của biểu thức.

Câu lệnh if

<?php

$score = 8;

if ($score >= 5) {
    echo "Đạt";
}

?>

Câu lệnh if...else

<?php

$score = 4;

if ($score >= 5) {
    echo "Đạt";
} else {
    echo "Không đạt";
}

?>

Câu lệnh if...elseif...else

<?php

$score = 9;

if ($score >= 8) {
    echo "Giỏi";
} elseif ($score >= 6.5) {
    echo "Khá";
} elseif ($score >= 5) {
    echo "Trung bình";
} else {
    echo "Yếu";
}

?>

Lồng nhiều điều kiện

<?php

$age = 22;
$money = 5000;

if ($age >= 18) {
    if ($money >= 1000) {
        echo "Có thể mua";
    }
}

?>

Switch

Switch phù hợp khi cần so sánh nhiều giá trị của cùng một biến.

<?php

$day = 3;

switch ($day) {
    case 1:
        echo "Thứ Hai";
        break;

    case 2:
        echo "Thứ Ba";
        break;

    case 3:
        echo "Thứ Tư";
        break;

    default:
        echo "Không xác định";
}

?>

Match trong PHP 8

Match là cú pháp hiện đại hơn Switch. Giá trị được so sánh bằng toán tử === nên an toàn hơn và ngắn gọn hơn.

<?php

$status = 200;

$message = match ($status) {
    200 => "Success",
    404 => "Not Found",
    500 => "Server Error",
    default => "Unknown"
};

echo $message;

?>

Vòng lặp trong PHP

Vòng lặp giúp thực hiện lặp đi lặp lại một đoạn mã mà không cần viết nhiều lần.

Vòng lặp for

<?php

for ($i = 1; $i <= 5; $i++) {
    echo $i;
    echo "<br>";
}

?>

Vòng lặp while

<?php

$i = 1;

while ($i <= 5) {
    echo $i;
    echo "<br>";
    $i++;
}

?>

Vòng lặp do...while

Khác với while, do...while luôn thực hiện ít nhất một lần trước khi kiểm tra điều kiện.

<?php

$i = 1;

do {

    echo $i;
    echo "<br>";
    $i++;

} while ($i <= 5);

?>

Vòng lặp foreach

Foreach là lựa chọn tốt nhất khi duyệt mảng.

<?php

$colors = ["Đỏ", "Xanh", "Vàng"];

foreach ($colors as $color) {

    echo $color;
    echo "<br>";

}

?>

Foreach với key và value

<?php

$user = [
    "name" => "An",
    "age" => 25,
    "city" => "Hà Nội"
];

foreach ($user as $key => $value) {

    echo $key . ": " . $value;
    echo "<br>";

}

?>

Break

Break dùng để dừng ngay vòng lặp hoặc Switch.

<?php

for ($i = 1; $i <= 10; $i++) {

    if ($i == 6) {
        break;
    }

    echo $i;

}

?>

Continue

Continue bỏ qua lần lặp hiện tại và chuyển sang lần lặp tiếp theo.

<?php

for ($i = 1; $i <= 5; $i++) {

    if ($i == 3) {
        continue;
    }

    echo $i;

}

?>

Goto

PHP vẫn hỗ trợ goto, tuy nhiên tính năng này rất hiếm khi được sử dụng trong các dự án thực tế vì có thể làm luồng chương trình trở nên khó đọc và khó bảo trì.

<?php

goto end;

echo "Đoạn này sẽ không chạy";

end:

echo "Đã nhảy tới đây";

?>

Hàm trong PHP

Hàm (Function) là một khối mã thực hiện một nhiệm vụ cụ thể và có thể được gọi lại nhiều lần trong chương trình. Việc sử dụng hàm giúp giảm trùng lặp mã nguồn, tăng khả năng tái sử dụng và giúp chương trình dễ bảo trì hơn.

Khai báo hàm

<?php

function sayHello()
{
    echo "Xin chào Web Mới";
}

sayHello();

?>

Hàm có tham số

Tham số cho phép truyền dữ liệu từ bên ngoài vào hàm.

<?php

function hello($name)
{
    echo "Xin chào " . $name;
}

hello("Nguyễn Văn A");

?>

Hàm có nhiều tham số

<?php

function add($a, $b)
{
    return $a + $b;
}

echo add(5, 8);

?>

Giá trị mặc định của tham số

<?php

function welcome($name = "Khách")
{
    echo "Xin chào " . $name;
}

welcome();
echo "<br>";
welcome("Lan");

?>

Trả về giá trị bằng return

Từ khóa return kết thúc hàm và trả kết quả về nơi gọi.

<?php

function square($number)
{
    return $number * $number;
}

$result = square(9);

echo $result;

?>

Khai báo kiểu dữ liệu tham số

Từ PHP 7 trở lên, bạn có thể chỉ định kiểu dữ liệu của tham số.

<?php

function sum(int $a, int $b)
{
    return $a + $b;
}

echo sum(10, 20);

?>

Khai báo kiểu dữ liệu trả về

<?php

function multiply(int $a, int $b): int
{
    return $a * $b;
}

echo multiply(4, 6);

?>

Nullable Type

Dấu ? cho phép hàm nhận hoặc trả về giá trị null.

<?php

function getName(?string $name): ?string
{
    return $name;
}

echo getName("Web Mới");

?>

Union Type

Union Type cho phép một biến hoặc tham số có nhiều kiểu dữ liệu.

<?php

function printValue(int|string $value)
{
    echo $value;
}

printValue(100);
printValue("PHP");

?>

Named Arguments

Tính năng xuất hiện từ PHP 8 giúp truyền tham số theo tên.

<?php

function createUser($name, $age, $city)
{
    echo $name;
}

createUser(
    city: "Hà Nội",
    age: 25,
    name: "Nam"
);

?>

Biến có số lượng tham số không cố định

<?php

function total(...$numbers)
{
    return array_sum($numbers);
}

echo total(5, 10, 20, 15);

?>

Anonymous Function

Anonymous Function (hàm ẩn danh) không có tên và thường được truyền vào các hàm khác.

<?php

$hello = function ($name)
{
    return "Xin chào " . $name;
};

echo $hello("Web Mới");

?>

Arrow Function

Arrow Function giúp viết các hàm ngắn gọn hơn.

<?php

$double = fn($number) => $number * 2;

echo $double(15);

?>

Closure sử dụng use

<?php

$prefix = "Xin chào";

$hello = function ($name) use ($prefix)
{
    return $prefix . " " . $name;
};

echo $hello("PHP");

?>

Phạm vi của biến

Mỗi biến trong PHP đều có phạm vi hoạt động riêng. Hiểu rõ Scope giúp hạn chế lỗi khi chương trình ngày càng lớn.

Biến cục bộ

<?php

function demo()
{
    $name = "Web Mới";
    echo $name;
}

demo();

?>

Biến $name chỉ tồn tại bên trong hàm.

Biến toàn cục

<?php

$name = "PHP";

function showName()
{
    global $name;
    echo $name;
}

showName();

?>

Sử dụng mảng $GLOBALS

<?php

$total = 100;

function increase()
{
    $GLOBALS["total"] += 50;
}

increase();

echo $total;

?>

Biến static

Biến static vẫn giữ nguyên giá trị sau mỗi lần gọi hàm.

<?php

function counter()
{
    static $count = 0;

    $count++;

    echo $count;
    echo "<br>";
}

counter();
counter();
counter();

?>

Truyền tham số theo tham chiếu

Mặc định PHP truyền dữ liệu theo giá trị. Nếu muốn thay đổi trực tiếp biến gốc, hãy truyền theo tham chiếu bằng ký tự &.

<?php

function increase(&$number)
{
    $number++;
}

$value = 10;

increase($value);

echo $value;

?>

Include và Require

Trong các dự án thực tế, mã nguồn thường được chia thành nhiều tệp khác nhau. PHP hỗ trợ Include và Require để tái sử dụng các tệp này.

Include

Nếu tệp không tồn tại, chương trình chỉ sinh cảnh báo và vẫn tiếp tục chạy.

<?php

include "header.php";

echo "Nội dung trang";

?>

Require

Nếu tệp không tồn tại, chương trình sẽ dừng ngay lập tức.

<?php

require "config.php";

echo "Trang chủ";

?>

Include Once

Đảm bảo một tệp chỉ được nạp một lần.

<?php

include_once "config.php";

?>

Require Once

<?php

require_once "database.php";

?>

Biến siêu toàn cục (Superglobals)

Superglobals là các biến đặc biệt có thể sử dụng ở mọi nơi trong chương trình mà không cần khai báo global.

Biến Mục đích
$_GET Lấy dữ liệu từ URL.
$_POST Lấy dữ liệu từ Form POST.
$_REQUEST Kết hợp GET, POST và COOKIE.
$_FILES Thông tin tệp tải lên.
$_COOKIE Làm việc với Cookie.
$_SESSION Làm việc với Session.
$_SERVER Thông tin máy chủ và request.
$_ENV Biến môi trường.
$GLOBALS Truy cập biến toàn cục.

Ví dụ với $_GET

<?php

$name = $_GET["name"] ?? "";

echo $name;

?>

Ví dụ với $_POST

<?php

$username = $_POST["username"] ?? "";

echo $username;

?>

Ví dụ với $_SERVER

<?php

echo $_SERVER["REQUEST_METHOD"];
echo "<br>";
echo $_SERVER["HTTP_HOST"];
echo "<br>";
echo $_SERVER["PHP_SELF"];

?>

Kiểm tra phương thức gửi Form

<?php

if ($_SERVER["REQUEST_METHOD"] === "POST") {

    echo "Form được gửi bằng POST";

}

?>

Làm việc với mảng trong PHP

Mảng (Array) là một trong những kiểu dữ liệu được sử dụng nhiều nhất trong PHP. Mảng cho phép lưu trữ nhiều giá trị trong cùng một biến, giúp việc xử lý dữ liệu trở nên thuận tiện và linh hoạt hơn. PHP hỗ trợ nhiều loại mảng khác nhau để phù hợp với từng mục đích sử dụng.

Mảng chỉ số (Indexed Array)

Đây là loại mảng phổ biến nhất, các phần tử được đánh chỉ số bắt đầu từ 0.

<?php

$colors = ["Đỏ", "Xanh", "Vàng"];

echo $colors[0];
echo "<br>";
echo $colors[1];

?>

Khai báo bằng array()

<?php

$numbers = array(10, 20, 30, 40);

echo $numbers[2];

?>

Mảng kết hợp (Associative Array)

Thay vì sử dụng chỉ số số nguyên, mảng kết hợp sử dụng key để truy cập dữ liệu.

<?php

$user = [
    "name" => "Nguyễn Văn A",
    "age" => 28,
    "city" => "Hồ Chí Minh"
];

echo $user["name"];

?>

Mảng đa chiều

<?php

$students = [
    [
        "name" => "An",
        "score" => 8.5
    ],
    [
        "name" => "Bình",
        "score" => 9
    ]
];

echo $students[1]["name"];

?>

Thêm và cập nhật phần tử

Thêm phần tử vào cuối mảng

<?php

$colors = ["Đỏ", "Xanh"];

$colors[] = "Vàng";

print_r($colors);

?>

Thêm phần tử theo key

<?php

$user = [];

$user["name"] = "Lan";
$user["age"] = 25;

print_r($user);

?>

Cập nhật giá trị

<?php

$user["age"] = 30;

echo $user["age"];

?>

Xóa phần tử

<?php

$colors = ["Đỏ", "Xanh", "Vàng"];

unset($colors[1]);

print_r($colors);

?>

Duyệt mảng

Dùng foreach

<?php

$numbers = [10, 20, 30];

foreach ($numbers as $number) {

    echo $number;
    echo "<br>";

}

?>

Duyệt key và value

<?php

$user = [
    "name" => "Minh",
    "age" => 25
];

foreach ($user as $key => $value) {

    echo $key . ": " . $value;
    echo "<br>";

}

?>

Các hàm xử lý mảng thường dùng

count()

Đếm số phần tử của mảng.

<?php

$list = [1, 2, 3, 4];

echo count($list);

?>

array_push()

Thêm một hoặc nhiều phần tử vào cuối mảng.

<?php

$list = [1, 2];

array_push($list, 3, 4);

print_r($list);

?>

array_pop()

Xóa phần tử cuối cùng.

<?php

$list = [10, 20, 30];

array_pop($list);

print_r($list);

?>

array_shift()

Xóa phần tử đầu tiên.

<?php

$list = [10, 20, 30];

array_shift($list);

print_r($list);

?>

array_unshift()

Thêm phần tử vào đầu mảng.

<?php

$list = [20, 30];

array_unshift($list, 10);

print_r($list);

?>

array_merge()

Gộp nhiều mảng thành một.

<?php

$a = [1, 2];
$b = [3, 4];

$result = array_merge($a, $b);

print_r($result);

?>

array_combine()

<?php

$keys = ["name", "age"];
$values = ["Nam", 20];

$result = array_combine($keys, $values);

print_r($result);

?>

array_keys()

<?php

$user = [
    "name" => "An",
    "age" => 25
];

print_r(array_keys($user));

?>

array_values()

<?php

$user = [
    "name" => "An",
    "age" => 25
];

print_r(array_values($user));

?>

array_flip()

Đảo ngược key và value.

<?php

$data = [
    "a" => 1,
    "b" => 2
];

print_r(array_flip($data));

?>

array_unique()

<?php

$list = [1, 1, 2, 3, 3, 4];

print_r(array_unique($list));

?>

array_reverse()

<?php

$list = [1, 2, 3];

print_r(array_reverse($list));

?>

array_slice()

Cắt một phần của mảng.

<?php

$list = [10, 20, 30, 40, 50];

print_r(array_slice($list, 1, 3));

?>

array_splice()

Xóa hoặc thay thế một phần của mảng.

<?php

$list = [1, 2, 3, 4];

array_splice($list, 1, 2);

print_r($list);

?>

array_search()

<?php

$colors = ["Đỏ", "Xanh", "Vàng"];

echo array_search("Xanh", $colors);

?>

in_array()

<?php

$list = ["PHP", "HTML", "CSS"];

if (in_array("PHP", $list)) {

    echo "Có tồn tại";

}

?>

array_key_exists()

<?php

$user = [
    "name" => "An"
];

var_dump(array_key_exists("name", $user));

?>

array_column()

Lấy một cột dữ liệu từ mảng đa chiều.

<?php

$users = [
    [
        "id" => 1,
        "name" => "An"
    ],
    [
        "id" => 2,
        "name" => "Lan"
    ]
];

print_r(array_column($users, "name"));

?>

array_map()

Áp dụng một hàm cho từng phần tử.

<?php

$numbers = [1, 2, 3, 4];

$result = array_map(function ($item) {

    return $item * 2;

}, $numbers);

print_r($result);

?>

array_filter()

Lọc phần tử theo điều kiện.

<?php

$numbers = [2, 5, 8, 11];

$result = array_filter($numbers, function ($item) {

    return $item > 5;

});

print_r($result);

?>

array_reduce()

Gộp toàn bộ phần tử thành một giá trị.

<?php

$numbers = [1, 2, 3, 4];

$total = array_reduce($numbers, function ($carry, $item) {

    return $carry + $item;

}, 0);

echo $total;

?>

Sắp xếp mảng

Hàm Mục đích
sort() Tăng dần.
rsort() Giảm dần.
asort() Sắp xếp theo value và giữ key.
arsort() Giảm dần theo value.
ksort() Sắp xếp theo key.
krsort() Giảm dần theo key.
usort() Sắp xếp bằng hàm tự định nghĩa.

sort()

<?php

$list = [8, 2, 9, 1];

sort($list);

print_r($list);

?>

usort()

<?php

$users = [
    [
        "name" => "An",
        "age" => 30
    ],
    [
        "name" => "Lan",
        "age" => 20
    ]
];

usort($users, function ($a, $b) {

    return $a["age"] <=> $b["age"];

});

print_r($users);

?>

Xử lý chuỗi trong PHP

Chuỗi (String) là kiểu dữ liệu được sử dụng rất thường xuyên trong PHP. Từ việc xử lý dữ liệu nhập từ người dùng, tạo URL, định dạng nội dung, kiểm tra email cho đến xây dựng giao diện HTML đều liên quan đến chuỗi. PHP cung cấp rất nhiều hàm hỗ trợ thao tác với chuỗi một cách nhanh chóng và hiệu quả.

Khai báo chuỗi

<?php

$name = "Web Mới";
$title = 'PHP Cheat Sheet';

echo $name;
echo "<br>";
echo $title;

?>

Độ dài chuỗi với strlen()

<?php

$text = "Hello PHP";

echo strlen($text);

?>

Lưu ý: strlen() đếm số byte. Với chuỗi UTF-8 có dấu tiếng Việt, nên sử dụng mb_strlen().

<?php

$text = "Xin chào";

echo mb_strlen($text);

?>

Đếm số từ với str_word_count()

<?php

$text = "Learning PHP Programming";

echo str_word_count($text);

?>

Tìm vị trí chuỗi với strpos()

<?php

$text = "PHP Cheat Sheet";

echo strpos($text, "Cheat");

?>

Tìm vị trí cuối cùng với strrpos()

<?php

$text = "PHP HTML PHP CSS";

echo strrpos($text, "PHP");

?>

Kiểm tra chuỗi chứa nội dung với str_contains()

Hàm này được bổ sung từ PHP 8.

<?php

$text = "Welcome to Web Mới";

if (str_contains($text, "Web")) {

    echo "Có tồn tại";

}

?>

Kiểm tra bắt đầu bằng chuỗi với str_starts_with()

<?php

$text = "PHP Tutorial";

var_dump(str_starts_with($text, "PHP"));

?>

Kiểm tra kết thúc bằng chuỗi với str_ends_with()

<?php

$text = "image.jpg";

var_dump(str_ends_with($text, ".jpg"));

?>

Cắt chuỗi với substr()

<?php

$text = "PHP Cheat Sheet";

echo substr($text, 4);

?>

Thay thế chuỗi với str_replace()

<?php

$text = "Tôi học Java";

echo str_replace("Java", "PHP", $text);

?>

Thay thế không phân biệt hoa thường với str_ireplace()

<?php

$text = "PHP Tutorial";

echo str_ireplace("php", "Laravel", $text);

?>

Chuyển thành chữ hoa với strtoupper()

<?php

echo strtoupper("hello php");

?>

Chuyển thành chữ thường với strtolower()

<?php

echo strtolower("HELLO PHP");

?>

Viết hoa chữ cái đầu với ucfirst()

<?php

echo ucfirst("php");

?>

Viết hoa mỗi từ với ucwords()

<?php

echo ucwords("php cheat sheet");

?>

Xóa khoảng trắng hai đầu với trim()

<?php

$text = "   PHP   ";

echo trim($text);

?>

Xóa khoảng trắng bên trái với ltrim()

<?php

echo ltrim("   PHP");

?>

Xóa khoảng trắng bên phải với rtrim()

<?php

echo rtrim("PHP   ");

?>

Tách chuỗi thành mảng với explode()

<?php

$text = "HTML,CSS,PHP";

print_r(explode(",", $text));

?>

Ghép mảng thành chuỗi với implode()

<?php

$list = ["HTML", "CSS", "PHP"];

echo implode(" - ", $list);

?>

Lặp chuỗi với str_repeat()

<?php

echo str_repeat("*", 10);

?>

Đảo ngược chuỗi với strrev()

<?php

echo strrev("PHP");

?>

So sánh chuỗi với strcmp()

<?php

echo strcmp("abc", "abc");

?>

So sánh không phân biệt hoa thường với strcasecmp()

<?php

echo strcasecmp("PHP", "php");

?>

Định dạng chuỗi với sprintf()

<?php

$name = "An";
$age = 25;

echo sprintf("%s năm nay %d tuổi", $name, $age);

?>

Chuyển ký tự xuống dòng thành thẻ br với nl2br()

<?php

$text = "Dòng 1
Dòng 2";

echo nl2br($text);

?>

Mã hóa ký tự HTML với htmlspecialchars()

Đây là hàm rất quan trọng để chống XSS khi hiển thị dữ liệu do người dùng nhập.

<?php

$text = "<script>alert('Hello');</script>";

echo htmlspecialchars($text);

?>

Mã hóa toàn bộ thực thể HTML với htmlentities()

<?php

$text = "<b>PHP</b>";

echo htmlentities($text);

?>

Giải mã HTML với html_entity_decode()

<?php

$text = "&lt;h1&gt;Hello&lt;/h1&gt;";

echo html_entity_decode($text);

?>

Loại bỏ thẻ HTML với strip_tags()

<?php

$html = "<h1>PHP</h1><p>Tutorial</p>";

echo strip_tags($html);

?>

Thêm dấu gạch chéo với addslashes()

<?php

$text = "I'm learning PHP";

echo addslashes($text);

?>

Loại bỏ dấu gạch chéo với stripslashes()

<?php

$text = "I'm learning PHP";

echo stripslashes($text);

?>

Mã hóa URL với urlencode()

<?php

echo urlencode("PHP Cheat Sheet");

?>

Giải mã URL với urldecode()

<?php

echo urldecode("PHP+Cheat+Sheet");

?>

Mã hóa Base64

<?php

echo base64_encode("Web Mới");

?>

Giải mã Base64

<?php

echo base64_decode("V2ViIE3hu5tp");

?>

Biểu thức chính quy (Regular Expression)

Regular Expression (Regex) cho phép tìm kiếm, kiểm tra và thay thế chuỗi theo mẫu. Đây là công cụ rất mạnh khi xử lý dữ liệu đầu vào.

preg_match()

Kiểm tra chuỗi có khớp với mẫu hay không.

<?php

$email = "admin@example.com";

if (preg_match("/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$/", $email)) {

    echo "Email hợp lệ";

}

?>

preg_match_all()

Tìm tất cả kết quả phù hợp.

<?php

$text = "PHP HTML CSS PHP";

preg_match_all("/PHP/", $text, $matches);

print_r($matches);

?>

preg_replace()

Thay thế nội dung theo biểu thức chính quy.

<?php

$text = "PHP 8.4";

echo preg_replace("/[0-9.]+/", "", $text);

?>

preg_split()

Tách chuỗi bằng biểu thức chính quy.

<?php

$text = "HTML,CSS;PHP JavaScript";

print_r(preg_split("/[,; ]+/", $text));

?>

So sánh các hàm xử lý chuỗi phổ biến

Hàm Mục đích
strlen() Đếm độ dài chuỗi.
strpos() Tìm vị trí chuỗi.
substr() Cắt chuỗi.
explode() Tách chuỗi thành mảng.
implode() Ghép mảng thành chuỗi.
trim() Xóa khoảng trắng.
str_replace() Thay thế chuỗi.
htmlspecialchars() Mã hóa ký tự HTML.
preg_match() Kiểm tra Regex.
preg_replace() Thay thế bằng Regex.

Xử lý ngày và thời gian trong PHP

Ngày và thời gian là thành phần xuất hiện trong hầu hết các ứng dụng web như đăng bài, ghi nhận thời điểm đăng nhập, tạo lịch hẹn, thống kê dữ liệu hoặc tính khoảng cách giữa hai mốc thời gian. PHP cung cấp cả các hàm truyền thống và lớp DateTime để làm việc với thời gian một cách linh hoạt.

Thiết lập múi giờ

Trước khi làm việc với thời gian, nên thiết lập múi giờ để đảm bảo kết quả chính xác.

<?php

date_default_timezone_set("Asia/Ho_Chi_Minh");

?>

Lấy thời gian hiện tại

<?php

echo date("Y-m-d H:i:s");

?>

Định dạng ngày giờ với date()

Ký tự Ý nghĩa
Y Năm 4 chữ số.
y Năm 2 chữ số.
m Tháng có số 0 phía trước.
n Tháng không có số 0.
d Ngày có số 0 phía trước.
j Ngày không có số 0.
H Giờ 24.
h Giờ 12.
i Phút.
s Giây.
l Tên thứ.
D Viết tắt thứ.
<?php

echo date("d/m/Y");
echo "<br>";
echo date("H:i:s");
echo "<br>";
echo date("d-m-Y H:i");

?>

Lấy Timestamp với time()

<?php

echo time();

?>

Chuyển Timestamp thành ngày

<?php

echo date("d/m/Y H:i:s", time());

?>

Tạo Timestamp bằng mktime()

<?php

echo mktime(8, 30, 0, 12, 25, 2026);

?>

Chuyển chuỗi thành Timestamp với strtotime()

<?php

echo strtotime("2026-12-25");

?>

Ví dụ với strtotime()

<?php

echo date("d/m/Y", strtotime("+7 days"));
echo "<br>";
echo date("d/m/Y", strtotime("-1 month"));
echo "<br>";
echo date("d/m/Y", strtotime("next monday"));

?>

Làm việc với DateTime

Lớp DateTime được khuyến khích sử dụng trong các dự án hiện đại vì dễ mở rộng và thuận tiện hơn so với các hàm truyền thống.

Tạo đối tượng DateTime

<?php

$date = new DateTime();

echo $date->format("d/m/Y H:i:s");

?>

Tạo từ một ngày cụ thể

<?php

$date = new DateTime("2026-08-15");

echo $date->format("d/m/Y");

?>

Thay đổi ngày

<?php

$date = new DateTime();

$date->modify("+10 days");

echo $date->format("d/m/Y");

?>

Cộng thêm thời gian bằng DateInterval

<?php

$date = new DateTime();

$date->add(new DateInterval("P15D"));

echo $date->format("d/m/Y");

?>

Trừ thời gian

<?php

$date = new DateTime();

$date->sub(new DateInterval("P2M"));

echo $date->format("d/m/Y");

?>

Tính khoảng cách giữa hai ngày

<?php

$start = new DateTime("2026-01-01");
$end = new DateTime("2026-03-15");

$diff = $start->diff($end);

echo $diff->days;

?>

Làm việc với Form

PHP thường được sử dụng để xử lý dữ liệu gửi từ Form HTML. Hai phương thức phổ biến nhất là GETPOST.

Đọc dữ liệu GET

<?php

$name = $_GET["name"] ?? "";

echo htmlspecialchars($name);

?>

Đọc dữ liệu POST

<?php

$username = $_POST["username"] ?? "";

echo htmlspecialchars($username);

?>

Kiểm tra Form được gửi hay chưa

<?php

if ($_SERVER["REQUEST_METHOD"] === "POST") {

    echo "Đã gửi Form";

}

?>

Kiểm tra dữ liệu rỗng

<?php

$email = trim($_POST["email"] ?? "");

if ($email === "") {

    echo "Email không được để trống";

}

?>

Kiểm tra và lọc dữ liệu

Không nên tin tưởng dữ liệu từ người dùng. Luôn kiểm tra và làm sạch dữ liệu trước khi lưu vào cơ sở dữ liệu hoặc hiển thị lên giao diện.

Kiểm tra Email

<?php

$email = "admin@example.com";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

    echo "Email hợp lệ";

}

?>

Kiểm tra URL

<?php

$url = "https://webmoi.vn";

if (filter_var($url, FILTER_VALIDATE_URL)) {

    echo "URL hợp lệ";

}

?>

Kiểm tra số nguyên

<?php

$value = 100;

if (filter_var($value, FILTER_VALIDATE_INT)) {

    echo "Là số nguyên";

}

?>

Làm sạch chuỗi

<?php

$text = "<b>PHP</b> Tutorial";

echo strip_tags($text);

?>

Tải tệp lên máy chủ

Upload File là tính năng thường gặp trong các website như cập nhật ảnh đại diện, đăng bài viết hoặc quản lý tài liệu.

Thông tin tệp tải lên

<?php

print_r($_FILES["image"]);

?>

Di chuyển tệp

<?php

move_uploaded_file(
    $_FILES["image"]["tmp_name"],
    "uploads/" . $_FILES["image"]["name"]
);

?>

Kiểm tra phần mở rộng

<?php

$extension = strtolower(pathinfo(
    $_FILES["image"]["name"],
    PATHINFO_EXTENSION
));

$allow = ["jpg", "jpeg", "png", "webp"];

if (in_array($extension, $allow)) {

    echo "Được phép tải lên";

}

?>

Kiểm tra kích thước tệp

<?php

if ($_FILES["image"]["size"] <= 2 * 1024 * 1024) {

    echo "Dung lượng hợp lệ";

}

?>

Cookie

Cookie được lưu trên trình duyệt người dùng và thường dùng để ghi nhớ thông tin đăng nhập hoặc các thiết lập cá nhân.

Tạo Cookie

<?php

setcookie(
    "username",
    "webmoi",
    time() + 3600
);

?>

Đọc Cookie

<?php

echo $_COOKIE["username"] ?? "";

?>

Xóa Cookie

<?php

setcookie(
    "username",
    "",
    time() - 3600
);

?>

Session

Khác với Cookie, Session được lưu trên máy chủ nên an toàn hơn và thường được sử dụng để quản lý đăng nhập.

Khởi tạo Session

<?php

session_start();

?>

Tạo Session

<?php

session_start();

$_SESSION["username"] = "webmoi";

?>

Đọc Session

<?php

session_start();

echo $_SESSION["username"] ?? "";

?>

Xóa một Session

<?php

session_start();

unset($_SESSION["username"]);

?>

Hủy toàn bộ Session

<?php

session_start();

session_destroy();

?>

Các hàm kiểm tra dữ liệu thường dùng

Hàm Mục đích
isset() Kiểm tra biến tồn tại.
empty() Kiểm tra biến rỗng.
is_null() Kiểm tra giá trị null.
is_numeric() Kiểm tra số.
is_array() Kiểm tra mảng.
is_string() Kiểm tra chuỗi.
is_bool() Kiểm tra Boolean.
filter_var() Kiểm tra và lọc dữ liệu.

Kết nối MySQL với PDO

PDO (PHP Data Objects) là phương thức kết nối cơ sở dữ liệu được khuyến nghị trong các dự án PHP hiện đại. PDO hỗ trợ nhiều hệ quản trị cơ sở dữ liệu khác nhau và đặc biệt giúp chống SQL Injection thông qua Prepared Statement.

Tạo kết nối PDO

<?php

$host = "localhost";
$dbname = "demo";
$username = "root";
$password = "";

try {

    $pdo = new PDO(
        "mysql:host=$host;dbname=$dbname;charset=utf8mb4",
        $username,
        $password
    );

    $pdo->setAttribute(
        PDO::ATTR_ERRMODE,
        PDO::ERRMODE_EXCEPTION
    );

} catch (PDOException $e) {

    echo $e->getMessage();

}

?>

Thực hiện truy vấn SELECT

<?php

$sql = "SELECT * FROM users";

$result = $pdo->query($sql);

foreach ($result as $row) {

    echo $row["name"];
    echo "<br>";

}

?>

Prepared Statement

Prepared Statement giúp tách câu lệnh SQL và dữ liệu đầu vào, từ đó hạn chế nguy cơ SQL Injection.

<?php

$sql = "SELECT * FROM users WHERE id = ?";

$stmt = $pdo->prepare($sql);

$stmt->execute([1]);

$user = $stmt->fetch();

print_r($user);

?>

Named Placeholder

<?php

$sql = "SELECT * FROM users WHERE email = :email";

$stmt = $pdo->prepare($sql);

$stmt->execute([
    "email" => "admin@example.com"
]);

$user = $stmt->fetch();

?>

Thêm dữ liệu

<?php

$sql = "INSERT INTO users(name,email)
VALUES(:name,:email)";

$stmt = $pdo->prepare($sql);

$stmt->execute([
    "name" => "An",
    "email" => "an@example.com"
]);

?>

Cập nhật dữ liệu

<?php

$sql = "UPDATE users
SET name = :name
WHERE id = :id";

$stmt = $pdo->prepare($sql);

$stmt->execute([
    "name" => "Lan",
    "id" => 5
]);

?>

Xóa dữ liệu

<?php

$sql = "DELETE FROM users
WHERE id = :id";

$stmt = $pdo->prepare($sql);

$stmt->execute([
    "id" => 5
]);

?>

Lấy một bản ghi

<?php

$stmt = $pdo->query("SELECT * FROM users");

$user = $stmt->fetch(PDO::FETCH_ASSOC);

print_r($user);

?>

Lấy nhiều bản ghi

<?php

$stmt = $pdo->query("SELECT * FROM users");

$users = $stmt->fetchAll(PDO::FETCH_ASSOC);

print_r($users);

?>

Đếm số bản ghi

<?php

$sql = "SELECT COUNT(*) FROM users";

echo $pdo->query($sql)->fetchColumn();

?>

Lấy ID vừa thêm

<?php

echo $pdo->lastInsertId();

?>

Transaction

Transaction đảm bảo nhiều câu lệnh SQL được thực hiện như một đơn vị thống nhất. Nếu một câu lệnh thất bại, toàn bộ thay đổi sẽ được hoàn tác.

<?php

try {

    $pdo->beginTransaction();

    $pdo->exec("UPDATE accounts SET balance = balance - 100 WHERE id = 1");

    $pdo->exec("UPDATE accounts SET balance = balance + 100 WHERE id = 2");

    $pdo->commit();

} catch (Exception $e) {

    $pdo->rollBack();

}

?>

Lập trình hướng đối tượng (OOP)

OOP (Object-Oriented Programming) giúp tổ chức mã nguồn thành các đối tượng, tăng khả năng tái sử dụng, mở rộng và bảo trì.

Khai báo Class

<?php

class User
{

}

?>

Thuộc tính và phương thức

<?php

class User
{

    public $name;

    public function hello()
    {
        echo "Xin chào";
    }

}

$user = new User();

$user->name = "Web Mới";

$user->hello();

?>

Constructor

<?php

class User
{

    public function __construct()
    {
        echo "Khởi tạo đối tượng";
    }

}

new User();

?>

Constructor có tham số

<?php

class User
{

    public $name;

    public function __construct($name)
    {
        $this->name = $name;
    }

}

$user = new User("An");

echo $user->name;

?>

Từ khóa this

<?php

class Product
{

    public $price = 500;

    public function showPrice()
    {
        echo $this->price;
    }

}

$product = new Product();

$product->showPrice();

?>

Phạm vi truy cập

Từ khóa Ý nghĩa
public Truy cập ở mọi nơi.
protected Truy cập trong class và class kế thừa.
private Chỉ truy cập trong class.

Kế thừa

<?php

class Animal
{

    public function eat()
    {
        echo "Đang ăn";
    }

}

class Dog extends Animal
{

}

$dog = new Dog();

$dog->eat();

?>

Ghi đè phương thức

<?php

class Animal
{

    public function sound()
    {
        echo "Âm thanh";
    }

}

class Cat extends Animal
{

    public function sound()
    {
        echo "Meo meo";
    }

}

?>

Abstract Class

<?php

abstract class Shape
{

    abstract public function area();

}

?>

Interface

<?php

interface Logger
{

    public function write();

}

?>

Trait

<?php

trait Message
{

    public function hello()
    {
        echo "Hello";
    }

}

class User
{

    use Message;

}

?>

Static

<?php

class Config
{

    public static $version = "1.0";

}

echo Config::$version;

?>

Xử lý ngoại lệ (Exception)

Exception giúp chương trình xử lý lỗi có kiểm soát thay vì dừng đột ngột.

Try...Catch

<?php

try {

    throw new Exception("Có lỗi xảy ra");

} catch (Exception $e) {

    echo $e->getMessage();

}

?>

Try...Catch...Finally

<?php

try {

    echo "Đang xử lý";

} catch (Exception $e) {

    echo $e->getMessage();

} finally {

    echo "Kết thúc";

}

?>

Namespace

Namespace giúp tránh xung đột tên class trong các dự án lớn.

<?php

namespace AppModels;

class User
{

}

?>

Sử dụng Namespace

<?php

use AppModelsUser;

$user = new User();

?>

Autoload Class

Autoload giúp PHP tự động nạp class khi cần sử dụng.

<?php

spl_autoload_register(function ($class) {

    require $class . ".php";

});

?>

Composer

Composer là trình quản lý thư viện phổ biến nhất trong hệ sinh thái PHP.

Cài đặt thư viện

composer require vendor/package

Cập nhật thư viện

composer update

Nạp Autoload của Composer

<?php

require "vendor/autoload.php";

?>

Một số tính năng nổi bật của PHP 8

  • Match Expression.
  • Named Arguments.
  • Constructor Property Promotion.
  • Union Types.
  • Nullsafe Operator.
  • Attributes.
  • Enums.
  • Readonly Properties.
  • Readonly Class.
  • Fibers.

Các hàm Debug thường dùng

Hàm Mục đích
var_dump() Hiển thị kiểu dữ liệu và giá trị.
print_r() Hiển thị mảng hoặc đối tượng.
die() Dừng chương trình.
exit() Thoát chương trình.
debug_backtrace() Xem ngăn xếp lời gọi hàm.

Những Best Practices khi lập trình PHP

  • Luôn sử dụng phiên bản PHP mới và còn được hỗ trợ.
  • Ưu tiên PDO cùng Prepared Statement thay vì nối chuỗi SQL.
  • Không tin tưởng dữ liệu từ người dùng, luôn kiểm tra và làm sạch trước khi xử lý.
  • Sử dụng htmlspecialchars() khi hiển thị dữ liệu để giảm nguy cơ XSS.
  • Đặt tên biến, hàm và class rõ ràng, nhất quán.
  • Tách mã nguồn thành nhiều tệp và thư mục theo chức năng.
  • Sử dụng Composer để quản lý thư viện.
  • Tuân thủ tiêu chuẩn PSR để mã nguồn dễ đọc và dễ bảo trì.
  • Không lưu thông tin nhạy cảm trực tiếp trong mã nguồn.
  • Sử dụng Git để quản lý phiên bản dự án.
  • Thường xuyên sao lưu cơ sở dữ liệu và mã nguồn.
  • Ghi log lỗi thay vì hiển thị thông báo lỗi chi tiết trên môi trường thực tế.

Tổng kết

Một PHP Cheat Sheet đầy đủ không chỉ giúp tra cứu nhanh cú pháp mà còn là tài liệu tham khảo hữu ích trong quá trình học tập và phát triển ứng dụng thực tế. Khi đã nắm vững các nội dung từ biến, toán tử, điều kiện, vòng lặp, hàm, mảng, chuỗi, xử lý Form, Session, Cookie, DateTime, PDO, OOP cho đến Exception và Composer, bạn sẽ có nền tảng vững chắc để xây dựng các website và ứng dụng PHP hiện đại. Hãy sử dụng bài tổng hợp này như một tài liệu tra cứu nhanh, đồng thời kết hợp với việc thực hành thường xuyên để ghi nhớ cú pháp và nâng cao kỹ năng lập trình PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Chia sẻ nội dung đánh giá của bạn về PHP Cheat Sheet đầy đủ
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Đăng ký tư vấn thiết kế website
Tìm hiểu 1 năm không bằng lắng nghe 1 câu tư vấn