Tổng hợp cú pháp PHP

Tổng hợp cú pháp PHP đầy đủ từ cơ bản đến nâng cao

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.

Tổng hợp cú pháp PHP

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à echoprint.

<?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
&&
|| 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()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 ===!== 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
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ề Tổng hợp cú pháp PHP
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