Tổng hợp cú pháp PHP
Trần Thị Vân
- 115
- 24/07/2026
Tổng hợp cú pháp PHP đầy đủ, dễ hiểu với ví dụ thực tế từ cơ bản đến nâng cao. Tra cứu nhanh biến, hàm, mảng, điều kiện, vòng lặp, OOP, Session, Cookie, JSON và nhiều cú pháp PHP quan trọng khác, chi tiết như nào hãy cùng chúng tôi phân tích:
PHP là một trong những ngôn ngữ lập trình phía máy chủ được sử dụng phổ biến để xây dựng website, hệ thống quản trị nội dung, ứng dụng web và API. Mặc dù cú pháp của PHP tương đối dễ tiếp cận, nhưng người mới thường gặp khó khăn khi ghi nhớ cách khai báo biến, điều kiện, vòng lặp, hàm, mảng hay làm việc với dữ liệu. Bài viết này tổng hợp đầy đủ các cú pháp PHP quan trọng theo từng nhóm, đi kèm giải thích ngắn gọn và ví dụ thực tế giúp bạn dễ tra cứu cũng như áp dụng vào dự án.

PHP là gì?
PHP (Hypertext Preprocessor) là ngôn ngữ lập trình kịch bản chạy trên máy chủ. Khi người dùng truy cập website, mã PHP sẽ được máy chủ xử lý trước, sau đó kết quả HTML mới được gửi về trình duyệt.
PHP có thể kết hợp với HTML, cơ sở dữ liệu MySQL, PostgreSQL, SQLite và nhiều hệ quản trị khác để xây dựng website động.
Cấu trúc cơ bản của một tập tin PHP
Một tập tin PHP thường có phần mở rộng .php. Mọi đoạn mã PHP được đặt giữa cặp thẻ mở và đóng.
<?php
echo "Xin chào PHP";
?>
Trong nhiều trường hợp, nếu toàn bộ file chỉ chứa PHP thì có thể bỏ thẻ đóng để tránh lỗi khoảng trắng ngoài ý muốn.
<?php
echo "Hello World";
Ghi chú trong PHP
PHP hỗ trợ ghi chú một dòng hoặc nhiều dòng.
<?php
// Ghi chú một dòng
# Ghi chú một dòng
/*
Đây là
ghi chú
nhiều dòng
*/
Xuất dữ liệu ra màn hình
Hai lệnh được sử dụng nhiều nhất là echo và print.
<?php
echo "Xin chào";
print "Web Mới";
Khai báo biến
Biến trong PHP luôn bắt đầu bằng ký tự $.
<?php
$ten = "Nguyễn Văn A";
$tuoi = 25;
$diem = 8.5;
Quy tắc đặt tên biến
- Bắt đầu bằng dấu $.
- Ký tự đầu tiên không được là số.
- Không chứa khoảng trắng.
- Phân biệt chữ hoa và chữ thường.
Kiểu dữ liệu phổ biến
| Kiểu | Mô tả |
|---|---|
| string | Chuỗi ký tự |
| integer | Số nguyên |
| float | Số thực |
| boolean | Đúng hoặc sai |
| array | Mảng |
| object | Đối tượng |
| null | Giá trị rỗng |
Hằng số
Hằng số chỉ được khai báo một lần và không thể thay đổi.
<?php
define("SITE_NAME", "Web Mới");
echo SITE_NAME;
Toán tử trong PHP
Toán tử số học
| Toán tử | Ý nghĩa |
|---|---|
| + | Cộng |
| - | Trừ |
| * | Nhân |
| / | Chia |
| % | Chia lấy dư |
| ** | Lũy thừa |
<?php
$a = 20;
$b = 6;
echo $a + $b;
echo $a - $b;
echo $a * $b;
echo $a / $b;
echo $a % $b;
Toán tử gán
| Cú pháp | Ý nghĩa |
|---|---|
| = | Gán |
| += | Cộng rồi gán |
| -= | Trừ rồi gán |
| *= | Nhân rồi gán |
| /= | Chia rồi gán |
Toán tử so sánh
| Toán tử | Ý nghĩa |
|---|---|
| == | Bằng |
| === | Bằng tuyệt đối |
| != | Khác |
| > | Lớn hơn |
| Nhỏ hơn | |
| >= | Lớn hơn hoặc bằng |
| Nhỏ hơn hoặc bằng |
Toán tử logic
| Toán tử | Ý nghĩa |
|---|---|
| && | Và |
| || | Hoặc |
| ! | Phủ định |
Câu lệnh điều kiện
Điều kiện if
<?php
$age = 20;
if ($age >= 18) {
echo "Đủ tuổi";
}
Điều kiện if else
<?php
if ($age >= 18) {
echo "Người lớn";
} else {
echo "Trẻ em";
}
Điều kiện elseif
<?php
if ($diem >= 8) {
echo "Giỏi";
} elseif ($diem >= 6.5) {
echo "Khá";
} else {
echo "Trung bình";
}
Toán tử ba ngôi
<?php
echo ($age >= 18) ? "Đủ tuổi" : "Chưa đủ tuổi";
Câu lệnh switch
<?php
switch ($level) {
case 1:
echo "Admin";
break;
case 2:
echo "Editor";
break;
default:
echo "Member";
}
Vòng lặp trong PHP
Vòng lặp for
<?php
for ($i = 1; $i <= 5; $i++) {
echo $i;
}
Vòng lặp while
<?php
$i = 1;
while ($i <= 5) {
echo $i;
$i++;
}
Vòng lặp do while
<?php
$i = 1;
do {
echo $i;
$i++;
} while ($i <= 5);
Vòng lặp foreach
<?php
$colors = ["Đỏ","Xanh","Vàng"];
foreach ($colors as $color) {
echo $color;
}
Mảng trong PHP
Mảng một chiều
<?php
$fruits = ["Táo","Cam","Chuối"];
Mảng kết hợp
<?php
$user = [
"name" => "An",
"age" => 25
];
Mảng nhiều chiều
<?php
$students = [
[
"name" => "Nam",
"score" => 8
],
[
"name" => "Lan",
"score" => 9
]
];
Làm việc với hàm
Hàm giúp đóng gói một đoạn mã để có thể tái sử dụng nhiều lần. Việc chia chương trình thành các hàm nhỏ giúp mã nguồn dễ đọc, dễ bảo trì và thuận tiện khi mở rộng dự án.
Khai báo hàm
<?php
function hello() {
echo "Xin chào Web Mới";
}
hello();
Hàm có tham số
<?php
function hello($name) {
echo "Xin chào " . $name;
}
hello("An");
Hàm trả về giá trị
<?php
function tong($a, $b) {
return $a + $b;
}
echo tong(10, 20);
Giá trị mặc định của tham số
<?php
function welcome($name = "Khách") {
echo "Xin chào " . $name;
}
welcome();
welcome("Nam");
Khai báo kiểu dữ liệu
Từ PHP 7 trở lên có thể chỉ định kiểu dữ liệu của tham số và giá trị trả về để hạn chế lỗi trong quá trình phát triển.
<?php
function multiply(int $a, int $b): int {
return $a * $b;
}
echo multiply(5, 8);
Chuỗi trong PHP
PHP cung cấp rất nhiều hàm để xử lý chuỗi. Dưới đây là những hàm được sử dụng nhiều nhất.
| Hàm | Công dụng |
|---|---|
| strlen() | Đếm số ký tự |
| strtolower() | Chuyển thành chữ thường |
| strtoupper() | Chuyển thành chữ hoa |
| trim() | Xóa khoảng trắng đầu và cuối |
| explode() | Tách chuỗi thành mảng |
| implode() | Ghép mảng thành chuỗi |
| substr() | Cắt chuỗi |
| str_replace() | Thay thế nội dung |
Ví dụ xử lý chuỗi
<?php
$text = "Xin chào PHP";
echo strlen($text);
echo strtoupper($text);
echo strtolower($text);
echo str_replace("PHP", "Web Mới", $text);
Làm việc với số
| Hàm | Mục đích |
|---|---|
| abs() | Giá trị tuyệt đối |
| round() | Làm tròn |
| ceil() | Làm tròn lên |
| floor() | Làm tròn xuống |
| max() | Giá trị lớn nhất |
| min() | Giá trị nhỏ nhất |
| rand() | Số ngẫu nhiên |
<?php
echo round(10.68);
echo ceil(10.2);
echo floor(10.8);
echo max(5, 10, 20);
echo min(5, 10, 20);
Làm việc với ngày và thời gian
Ngày giờ là thành phần không thể thiếu trong hầu hết các ứng dụng web.
Lấy thời gian hiện tại
<?php
echo date("d/m/Y");
echo date("H:i:s");
Định dạng ngày giờ
| Ký tự | Ý nghĩa |
|---|---|
| d | Ngày |
| m | Tháng |
| Y | Năm |
| H | Giờ 24h |
| i | Phút |
| s | Giây |
Thiết lập múi giờ
<?php
date_default_timezone_set("Asia/Ho_Chi_Minh");
echo date("d/m/Y H:i:s");
Làm việc với mảng
Ngoài việc khai báo, PHP còn có rất nhiều hàm hỗ trợ thao tác với mảng.
| Hàm | Công dụng |
|---|---|
| count() | Đếm phần tử |
| sort() | Sắp xếp tăng dần |
| rsort() | Sắp xếp giảm dần |
| array_push() | Thêm phần tử cuối |
| array_pop() | Xóa phần tử cuối |
| array_merge() | Ghép hai mảng |
| in_array() | Kiểm tra tồn tại |
Thêm phần tử
<?php
$colors = ["Đỏ", "Xanh"];
array_push($colors, "Vàng");
print_r($colors);
Ghép mảng
<?php
$a = [1, 2];
$b = [3, 4];
$c = array_merge($a, $b);
print_r($c);
Làm việc với biểu mẫu
Dữ liệu từ biểu mẫu HTML thường được gửi lên máy chủ bằng phương thức GET hoặc POST.
Đọc dữ liệu GET
<?php
$name = $_GET["name"];
echo $name;
Đọc dữ liệu POST
<?php
$username = $_POST["username"];
$password = $_POST["password"];
Kiểm tra dữ liệu tồn tại
<?php
if (isset($_POST["email"])) {
echo $_POST["email"];
}
Các biến toàn cục thường gặp
| Biến | Ý nghĩa |
|---|---|
| $_GET | Dữ liệu từ URL |
| $_POST | Dữ liệu gửi bằng POST |
| $_REQUEST | Tổng hợp GET, POST và COOKIE |
| $_SESSION | Dữ liệu phiên làm việc |
| $_COOKIE | Dữ liệu Cookie |
| $_FILES | Tệp được tải lên |
| $_SERVER | Thông tin máy chủ |
| $_ENV | Biến môi trường |
Kiểm tra biến
Trong quá trình lập trình, việc kiểm tra trạng thái của biến giúp hạn chế nhiều lỗi phổ biến.
| Hàm | Công dụng |
|---|---|
| isset() | Kiểm tra đã tồn tại |
| empty() | Kiểm tra rỗng |
| is_null() | Kiểm tra NULL |
| is_array() | Kiểm tra mảng |
| is_string() | Kiểm tra chuỗi |
| is_numeric() | Kiểm tra số |
<?php
$name = "";
if (empty($name)) {
echo "Biến đang rỗng";
}
Session trong PHP
Session được sử dụng để lưu trữ dữ liệu của người dùng trong suốt một phiên làm việc. Đây là cơ chế phổ biến để quản lý trạng thái đăng nhập, giỏ hàng, phân quyền hoặc lưu thông tin tạm thời.
Khởi tạo Session
Trước khi sử dụng Session, cần gọi hàm session_start() ở đầu tập tin PHP trước khi xuất bất kỳ nội dung nào ra trình duyệt.
<?php
session_start();
$_SESSION["username"] = "admin";
Đọc dữ liệu 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();
Cookie trong PHP
Cookie lưu dữ liệu trên trình duyệt của người dùng. So với Session, Cookie vẫn có thể tồn tại sau khi trình duyệt được đóng nếu chưa hết thời gian sống.
Tạo Cookie
<?php
setcookie("username", "admin", time() + 3600);
Đọc Cookie
<?php
echo $_COOKIE["username"];
Xóa Cookie
<?php
setcookie("username", "", time() - 3600);
Xử lý tập tin
PHP hỗ trợ đầy đủ các thao tác tạo, đọc, ghi và xóa tập tin trên máy chủ.
Mở tập tin
<?php
$file = fopen("data.txt", "r");
Đọc toàn bộ nội dung
<?php
echo file_get_contents("data.txt");
Ghi nội dung vào tập tin
<?php
file_put_contents("data.txt", "Hello PHP");
Đọc từng dòng
<?php
$file = fopen("data.txt", "r");
while (!feof($file)) {
echo fgets($file);
}
fclose($file);
Xóa tập tin
<?php
unlink("data.txt");
Làm việc với thư mục
Tạo thư mục
<?php
mkdir("upload");
Xóa thư mục
<?php
rmdir("upload");
Kiểm tra thư mục tồn tại
<?php
if (is_dir("upload")) {
echo "Đã tồn tại";
}
Tải tệp lên máy chủ
PHP hỗ trợ nhận tệp từ biểu mẫu HTML thông qua biến toàn cục $_FILES.
Kiểm tra tệp đã được gửi
<?php
if (isset($_FILES["image"])) {
echo $_FILES["image"]["name"];
}
Di chuyển tệp sau khi tải lên
<?php
move_uploaded_file(
$_FILES["image"]["tmp_name"],
"upload/" . $_FILES["image"]["name"]
);
Đọc thông tin máy chủ
Biến $_SERVER chứa nhiều thông tin hữu ích về yêu cầu gửi tới máy chủ.
| Thuộc tính | Mô tả |
|---|---|
| PHP_SELF | Tập tin hiện tại |
| SERVER_NAME | Tên máy chủ |
| HTTP_HOST | Tên miền truy cập |
| REQUEST_METHOD | Phương thức GET hoặc POST |
| REMOTE_ADDR | Địa chỉ IP người dùng |
| HTTP_USER_AGENT | Thông tin trình duyệt |
<?php
echo $_SERVER["SERVER_NAME"];
echo $_SERVER["REQUEST_METHOD"];
Xử lý ngoại lệ
Exception giúp chương trình xử lý lỗi một cách an toàn thay vì dừng đột ngột.
Sử dụng try và catch
<?php
try {
throw new Exception("Có lỗi xảy ra");
} catch (Exception $e) {
echo $e->getMessage();
}
Làm việc với JSON
JSON thường được sử dụng khi xây dựng API hoặc trao đổi dữ liệu giữa máy chủ và JavaScript.
Chuyển mảng sang JSON
<?php
$data = [
"name" => "Nam",
"age" => 25
];
echo json_encode($data);
Chuyển JSON thành mảng
<?php
$json = '{"name":"Nam","age":25}';
$data = json_decode($json, true);
echo $data["name"];
Biểu thức chính quy
Regular Expression (Regex) được sử dụng để kiểm tra định dạng dữ liệu, tìm kiếm hoặc thay thế chuỗi.
Kiểm tra Email
<?php
$email = "abc@example.com";
if (preg_match("/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$/", $email)) {
echo "Email hợp lệ";
}
Thay thế bằng Regex
<?php
$text = "PHP 8";
echo preg_replace("/8/", "9", $text);
Khai báo Namespace
Namespace giúp tránh xung đột tên lớp, hàm hoặc hằng số trong các dự án lớn.
<?php
namespace AppControllers;
class HomeController {
}
Tự động nạp lớp
Autoload giúp PHP tự động tải các lớp khi cần sử dụng mà không phải gọi require hoặc include cho từng tập tin.
<?php
spl_autoload_register(function ($class) {
require "classes/" . $class . ".php";
});
Import lớp bằng use
<?php
use AppControllersHomeController;
$controller = new HomeController();
Các câu lệnh nạp tập tin
| Câu lệnh | Mục đích |
|---|---|
| include | Nạp tập tin, nếu lỗi chương trình vẫn tiếp tục |
| include_once | Chỉ nạp một lần |
| require | Nạp tập tin, nếu lỗi chương trình dừng |
| require_once | Nạp đúng một lần và bắt buộc phải thành công |
<?php
require_once "config.php";
include "header.php";
include "footer.php";
Các hàm xử lý lỗi hữu ích
| Hàm | Chức năng |
|---|---|
| die() | Dừng chương trình |
| exit() | Thoát chương trình |
| trigger_error() | Tạo lỗi tùy chỉnh |
| error_reporting() | Thiết lập mức hiển thị lỗi |
| ini_set() | Thay đổi cấu hình PHP |
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
Lập trình hướng đối tượng trong PHP
Lập trình hướng đối tượng (Object-Oriented Programming - OOP) là nền tảng của hầu hết các framework PHP hiện đại như Laravel, Symfony hay CodeIgniter. Việc nắm vững cú pháp OOP giúp xây dựng ứng dụng dễ mở rộng, tái sử dụng mã nguồn và bảo trì lâu dài.
Khai báo lớp
<?php
class User {
}
Tạo đối tượng
<?php
class User {
}
$user = new User();
Thuộc tính
<?php
class User {
public $name = "Web Mới";
}
Phương thức
<?php
class User {
public function hello() {
echo "Xin chào";
}
}
$user = new User();
$user->hello();
Constructor
<?php
class User {
public function __construct() {
echo "Khởi tạo đối tượng";
}
}
new User();
Destructor
<?php
class User {
public function __destruct() {
echo "Kết thúc";
}
}
Phạm vi truy cập
Visibility quyết định thuộc tính hoặc phương thức được truy cập ở đâu.
| Phạm vi | Ý nghĩa |
|---|---|
| public | Truy cập ở mọi nơi |
| protected | Chỉ trong lớp và lớp kế thừa |
| private | Chỉ trong chính lớp đó |
Kế thừa
<?php
class Animal {
public function sound() {
echo "Âm thanh";
}
}
class Dog extends Animal {
}
$dog = new Dog();
$dog->sound();
Ghi đè phương thức
<?php
class Animal {
public function sound() {
echo "Động vật";
}
}
class Cat extends Animal {
public function sound() {
echo "Meo";
}
}
Từ khóa static
Thuộc tính hoặc phương thức static có thể được gọi mà không cần khởi tạo đối tượng.
<?php
class Config {
public static $site = "Web Mới";
}
echo Config::$site;
Hằng số trong lớp
<?php
class Config {
const VERSION = "1.0";
}
echo Config::VERSION;
Abstract Class
<?php
abstract class Animal {
abstract public function sound();
}
Interface
<?php
interface Login {
public function auth();
}
Trait
Trait giúp tái sử dụng mã nguồn giữa nhiều lớp mà không cần kế thừa.
<?php
trait Message {
public function hello() {
echo "Hello";
}
}
class User {
use Message;
}
Toán tử Null Coalescing
Toán tử ?? được sử dụng rất nhiều từ PHP 7 để kiểm tra giá trị tồn tại.
<?php
$name = $_GET["name"] ?? "Khách";
echo $name;
Toán tử Null Coalescing Assignment
<?php
$data ??= [];
Toán tử Spaceship
Toán tử trả về -1, 0 hoặc 1 khi so sánh hai giá trị.
<?php
echo 5 <=> 10;
echo 10 <=> 10;
echo 20 <=> 10;
Match Expression
Từ PHP 8, match là lựa chọn hiện đại hơn so với switch.
<?php
$status = 200;
echo match ($status) {
200 => "OK",
404 => "Not Found",
default => "Unknown"
};
Arrow Function
<?php
$sum = fn($a, $b) => $a + $b;
echo $sum(5, 10);
Anonymous Function
<?php
$hello = function () {
echo "Hello PHP";
};
$hello();
Generator
Generator giúp tiết kiệm bộ nhớ khi xử lý lượng dữ liệu lớn.
<?php
function number() {
yield 1;
yield 2;
yield 3;
}
foreach (number() as $value) {
echo $value;
}
Readonly Property
Từ PHP 8.1 có thể khai báo thuộc tính chỉ đọc.
<?php
class Product {
public readonly string $name;
public function __construct($name) {
$this->name = $name;
}
}
Enum
Enum được giới thiệu từ PHP 8.1 nhằm biểu diễn tập hợp giá trị cố định.
<?php
enum Status {
case Active;
case Inactive;
}
Attribute
Attribute là cú pháp metadata mới thay thế dần DocBlock trong nhiều trường hợp.
<?php
#[Attribute]
class Example {
}
Các hàm xử lý URL
| Hàm | Mục đích |
|---|---|
| urlencode() | Mã hóa URL |
| urldecode() | Giải mã URL |
| parse_url() | Phân tích URL |
| http_build_query() | Tạo chuỗi Query String |
<?php
$url = "https://example.com?id=1";
print_r(parse_url($url));
Các hàm mã hóa và bảo mật
| Hàm | Chức năng |
|---|---|
| password_hash() | Mã hóa mật khẩu |
| password_verify() | Kiểm tra mật khẩu |
| hash() | Tạo chuỗi băm |
| md5() | Băm MD5 |
| sha1() | Băm SHA1 |
Lưu ý: Khi phát triển website thực tế, nên sử dụng password_hash() và password_verify() để lưu trữ mật khẩu. Không nên dùng MD5 hoặc SHA1 để lưu mật khẩu vì không còn đáp ứng tốt yêu cầu bảo mật hiện nay.
<?php
$password = "123456";
$hash = password_hash($password, PASSWORD_DEFAULT);
if (password_verify($password, $hash)) {
echo "Đăng nhập thành công";
}
Những lưu ý khi học cú pháp PHP
- Luôn sử dụng phiên bản PHP mới để tận dụng các tính năng và cải thiện hiệu năng.
- Ưu tiên sử dụng toán tử so sánh nghiêm ngặt === và !== khi có thể.
- Kiểm tra dữ liệu đầu vào trước khi xử lý để giảm nguy cơ phát sinh lỗi và lỗ hổng bảo mật.
- Không hiển thị thông báo lỗi trên môi trường thực tế, chỉ ghi log để thuận tiện cho việc kiểm tra.
- Tuân thủ chuẩn mã nguồn như PSR-12 để dự án dễ đọc và dễ bảo trì.
- Thường xuyên cập nhật kiến thức vì PHP liên tục bổ sung các cú pháp và tính năng mới qua từng phiên bản.
Kết luận
Việc nắm vững cú pháp PHP không chỉ giúp lập trình nhanh hơn mà còn tạo nền tảng vững chắc để học các framework phổ biến như Laravel, Symfony hay CodeIgniter. Thay vì ghi nhớ máy móc, bạn nên kết hợp thực hành với các ví dụ thực tế để hiểu rõ cách hoạt động của từng cú pháp. Khi đã thành thạo những kiến thức cơ bản và nâng cao trong bài viết này, bạn sẽ dễ dàng xây dựng từ những website đơn giản cho đến các hệ thống web quy mô lớn, đồng thời có thể tra cứu nhanh mỗi khi cần sử dụng trong quá trình phát triển dự án.
- 0 Bình luận
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 *