Menu
CoddyTech

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ácCú pháp
Mở / đóng PHP<?php ... ?>
In văn bảnecho "Hello, World!";
In có định dạngprintf("%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ácCú 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ướngint, float, string, bool
Null$x = null;
Kiểm tra kiểugettype($x), is_int($x), is_array($x)
Ép kiểu(int) $str, (string) $num
Biến tồn tại / đã gánisset($x), empty($x)
Nội suy chuỗiecho "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ácCú pháp
Nối chuỗi$a . $b
Độ dàistrlen($s)
Chữ hoa / chữ thườngstrtoupper($s), strtolower($s)
Substringsubstr($s, 0, 5)
Tìm vị trístrpos($s, "x")
Thay thếstr_replace("a", "b", $s)
Tách thành mảngexplode(",", $csv)
Nối mảng thành chuỗiimplode(",", $arr)
Cắt khoảng trắngtrim($s)
Định dạng chuỗisprintf("%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ácCú 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àicount($nums)
Kiểm tra khóaisset($user["name"]), array_key_exists("name", $user)
Xóa phần tửunset($nums[1]);
Gộp mảngarray_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ácCú pháp
If / elseif / elseif ($x > 0) { ... } elseif (...) { ... } else { ... }
Ternary$y = $x > 0 ? "pos" : "neg";
Null coalescing$name = $_GET["name"] ?? "guest";
Switchswitch ($day) { case 1: ...; break; default: ... }
For loopfor ($i = 0; $i < 10; $i++) { ... }
While loopwhile ($x < 100) { ... }
Foreachforeach ($items as $item) { ... }
Biểu thức match$r = match($x) { 1 => "one", default => "?" };
Break / continuebreak;, 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ácCú pháp
Hàm cơ bảnfunction 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 địnhfunction greet($name = "guest") { ... }
Tham số variadicfunction sum(...$nums) { ... }
Pass by referencefunction 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àifunction() 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.

SuperglobalNội dung chứa
$_GETTham số query string trên URL
$_POSTDữ liệu form gửi bằng POST
$_REQUESTGộp $_GET, $_POST và $_COOKIE
$_SESSIONDữ liệu session của từng người dùng (sau session_start())
$_COOKIECookie trình duyệt gửi lên
$_SERVERThông tin máy chủ và request (REQUEST_METHOD, ...)
$_FILESThông tin về tệp được tải lên
$_ENVBiế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àmChứ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ácCú pháp
Định nghĩa lớpclass User { ... }
Thuộc tính có phạm vi truy cậppublic string $name;
Constructorfunction __construct($name) { $this->name = $name; }
Constructor promotionfunction __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 staticUser::$count, User::create()
Inheritanceclass Admin extends User { ... }
Interfaceinterface Saveable { public function save(); }
Cài đặt interfaceclass 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ì?
Mảng kết hợp là mảng PHP dùng khóa dạng chuỗi có tên thay cho (hoặc cùng với) chỉ số dạng số, như ["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.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học PHP cùng Coddy

Bắt đầu