Cheat sheet PHP
Cập nhật lần cuối
Hello World và thẻ PHP
Code PHP nằm trong cặp thẻ <?php ... ?>; mọi thứ bên ngoài được gửi ra dưới dạng đầu ra thuần.
| Thao tác | Cú pháp |
|---|---|
| Mở / đóng PHP | <?php ... ?> |
| In văn bản | echo "Hello, World!"; |
| In có định dạng | printf("%d items", $n); |
| Echo rút gọn (trong HTML) | <?= $name ?> |
| Chú thích một dòng | // comment hoặc # comment |
| Chú thích nhiều dòng | /* comment */ |
| Kết thúc câu lệnh | ; |
| Chạy một tệp (CLI) | php index.php |
Biến và kiểu dữ liệu
Biến bắt đầu bằng $ và có kiểu động.
| Thao tác | Cú pháp |
|---|---|
| Khai báo biến | $name = "Ada"; |
| Hằng số | const PI = 3.14; hoặc define("PI", 3.14); |
| Các kiểu vô hướng | int, float, string, bool |
| Null | $x = null; |
| Kiểm tra kiểu | gettype($x), is_int($x), is_array($x) |
| Ép kiểu | (int) $str, (string) $num |
| Biến tồn tại / đã gán | isset($x), empty($x) |
| Nội suy chuỗi | echo "Hi $name"; |
Chuỗi
Nháy kép thay biến vào chuỗi; nháy đơn giữ nguyên văn.
| Thao tác | Cú pháp |
|---|---|
| Nối chuỗi | $a . $b |
| Độ dài | strlen($s) |
| Chữ hoa / chữ thường | strtoupper($s), strtolower($s) |
| Substring | substr($s, 0, 5) |
| Tìm vị trí | strpos($s, "x") |
| Thay thế | str_replace("a", "b", $s) |
| Tách thành mảng | explode(",", $csv) |
| Nối mảng thành chuỗi | implode(",", $arr) |
| Cắt khoảng trắng | trim($s) |
| Định dạng chuỗi | sprintf("%05.2f", $n) |
Mảng (cả mảng kết hợp)
Một kiểu mảng dùng cho cả danh sách có chỉ số lẫn ánh xạ khóa và giá trị.
| Thao tác | Cú pháp |
|---|---|
| Mảng có chỉ số | $nums = [1, 2, 3]; |
| Mảng kết hợp | $user = ["name" => "Ada", "age" => 30]; |
| Truy cập phần tử | $nums[0], $user["name"] |
| Thêm vào cuối | $nums[] = 4; |
| Gán một khóa | $user["role"] = "admin"; |
| Độ dài | count($nums) |
| Kiểm tra khóa | isset($user["name"]), array_key_exists("name", $user) |
| Xóa phần tử | unset($nums[1]); |
| Gộp mảng | array_merge($a, $b) |
| Lặp qua khóa => giá trị | foreach ($user as $k => $v) { ... } |
Luồng điều khiển
Câu lệnh điều kiện và vòng lặp theo cú pháp kiểu C.
| Thao tác | Cú pháp |
|---|---|
| If / elseif / else | if ($x > 0) { ... } elseif (...) { ... } else { ... } |
| Ternary | $y = $x > 0 ? "pos" : "neg"; |
| Null coalescing | $name = $_GET["name"] ?? "guest"; |
| Switch | switch ($day) { case 1: ...; break; default: ... } |
| For loop | for ($i = 0; $i < 10; $i++) { ... } |
| While loop | while ($x < 100) { ... } |
| Foreach | foreach ($items as $item) { ... } |
| Biểu thức match | $r = match($x) { 1 => "one", default => "?" }; |
| Break / continue | break;, continue; |
Hàm
Hàm có thể khai báo kiểu, giá trị mặc định và tham số biến đổi (variadic).
| Thao tác | Cú pháp |
|---|---|
| Hàm cơ bản | function add($a, $b) { return $a + $b; } |
| Kiểu cho tham số và giá trị trả về | function add(int $a, int $b): int { ... } |
| Giá trị mặc định | function greet($name = "guest") { ... } |
| Tham số variadic | function sum(...$nums) { ... } |
| Pass by reference | function inc(&$x) { $x++; } |
| Hàm ẩn danh | $f = function($x) { return $x * 2; }; |
| Arrow function | $f = fn($x) => $x * 2; |
| Dùng biến bên ngoài | function() use ($n) { ... } |
Superglobal
Các mảng có sẵn ở mọi phạm vi, chủ yếu chứa dữ liệu của request.
| Superglobal | Nội dung chứa |
|---|---|
$_GET | Tham số query string trên URL |
$_POST | Dữ liệu form gửi bằng POST |
$_REQUEST | Gộp $_GET, $_POST và $_COOKIE |
$_SESSION | Dữ liệu session của từng người dùng (sau session_start()) |
$_COOKIE | Cookie trình duyệt gửi lên |
$_SERVER | Thông tin máy chủ và request (REQUEST_METHOD, ...) |
$_FILES | Thông tin về tệp được tải lên |
$_ENV | Biến môi trường |
Các hàm mảng thông dụng
PHP có hàng trăm hàm hỗ trợ mảng; đây là những hàm dùng nhiều nhất.
| Hàm | Chức năng |
|---|---|
array_map($fn, $arr) | Biến đổi từng phần tử |
array_filter($arr, $fn) | Giữ các phần tử mà callback trả về true |
array_reduce($arr, $fn, $init) | Gộp lại thành một giá trị |
in_array($v, $arr) | Kiểm tra một giá trị có tồn tại không |
array_keys($arr) / array_values($arr) | Lấy các khóa hoặc giá trị |
sort($arr) / rsort($arr) | Sắp xếp tại chỗ (tăng / giảm) |
usort($arr, $cmp) | Sắp xếp với hàm so sánh tùy chỉnh |
array_slice($arr, 1, 3) | Trích một phần |
array_push($arr, $v) / array_pop($arr) | Thêm / xóa ở cuối |
Lớp và OOP
PHP hỗ trợ lớp, kế thừa, interface và phạm vi truy cập.
| Thao tác | Cú pháp |
|---|---|
| Định nghĩa lớp | class User { ... } |
| Thuộc tính có phạm vi truy cập | public string $name; |
| Constructor | function __construct($name) { $this->name = $name; } |
| Constructor promotion | function __construct(public string $name) {} |
| Tạo instance | $u = new User("Ada"); |
| Truy cập thành viên | $u->name, $u->save() |
| Thành viên static | User::$count, User::create() |
| Inheritance | class Admin extends User { ... } |
| Interface | interface Saveable { public function save(); } |
| Cài đặt interface | class User implements Saveable { ... } |
Những cú pháp PHP bạn dùng nhiều nhất, gói gọn trong một trang. Cheat sheet PHP này là bảng tra cứu nhanh cho phần cốt lõi của ngôn ngữ: biến và kiểu dữ liệu, chuỗi, mảng (cả mảng kết hợp), luồng điều khiển, hàm, các superglobal như $_GET và $_POST, và lớp.
Mọi thứ ở đây là PHP chuẩn, chạy được trên các phiên bản hiện đại. Sao chép phần bạn cần, hoặc chạy thử từng đoạn code trong PHP playground, không cần dựng máy chủ.
Câu hỏi thường gặp về cheat sheet PHP
Cheat sheet PHP này có miễn phí không?
Có. Cheat sheet PHP này hoàn toàn miễn phí, không cần đăng ký. Hãy lưu dấu trang và quay lại bất cứ khi nào bạn cần tra một hàm chuỗi, hàm mảng hay superglobal.
== và === trong PHP khác nhau thế nào?
== là so sánh lỏng: nó chuyển hai toán hạng về cùng kiểu rồi mới so sánh, nên 0 == "0" và cả 0 == "" có thể cho kết quả bất ngờ giữa các phiên bản. === là so sánh nghiêm ngặt: chỉ trả về true khi hai giá trị bằng nhau và cùng kiểu, nên 0 === "0" là false. Nên dùng === để tránh bug do tự chuyển kiểu.Mảng kết hợp trong PHP là gì?
["name" => "Ada", "age" => 30]. PHP chỉ có một kiểu mảng, vừa là danh sách có thứ tự vừa là ánh xạ khóa và giá trị, nên bạn lấy giá trị theo khóa bằng $user["name"] và lặp bằng foreach ($user as $key => $value).Có thể luyện tập PHP online không?
Có. Mở PHP playground để chạy bất kỳ đoạn code nào trong cheat sheet này ngay trên trình duyệt, không cần máy chủ hay cài PHP trên máy. Khi muốn học có lộ trình, khóa học PHP tương tác miễn phí của Coddy đưa bạn từng bước từ biến và mảng đến hàm và OOP.
Cheat sheet này có phù hợp cho người mới bắt đầu không?
Có. Trang được sắp xếp từ các chủ đề phổ biến nhất (biến, chuỗi, mảng, luồng điều khiển) đến các chủ đề nâng cao (superglobal và OOP), nên bạn dùng được các phần đầu ngay từ ngày đầu tiên và dần làm quen với phần còn lại.