Tổng hợp các toán tử trong PHP
Trần Thị Vân
- 112
- 24/07/2026
Khám phá đầy đủ các toán tử trong PHP từ số học, gán, so sánh, logic, chuỗi, mảng, bitwise đến toán tử điều kiện. Có ví dụ minh họa, dễ hiểu và phù hợp cho người mới học cũng như lập trình viên muốn củng cố kiến thức, chi tiết như nào hãy cùng chúng tôi phân tích:
Toán tử trong PHP là nền tảng để xử lý dữ liệu, tính toán, so sánh, kiểm tra điều kiện và thao tác với biến trong hầu hết mọi chương trình. Dù bạn chỉ viết một đoạn mã đơn giản hay phát triển một hệ thống lớn, việc hiểu rõ cách hoạt động của từng nhóm toán tử sẽ giúp mã nguồn ngắn gọn hơn, dễ đọc hơn và hạn chế nhiều lỗi khó phát hiện.
Trong bài viết này, chúng ta sẽ tìm hiểu đầy đủ các nhóm toán tử phổ biến của PHP, cách sử dụng thực tế, những điểm khác biệt dễ nhầm lẫn và các lưu ý quan trọng giúp bạn viết mã chính xác, tối ưu hơn.

Toán tử trong PHP là gì?
Toán tử (Operator) là ký hiệu hoặc từ khóa dùng để thực hiện một phép xử lý trên một hoặc nhiều giá trị. Những giá trị được tác động gọi là toán hạng (Operand).
Mỗi toán tử sẽ có nhiệm vụ khác nhau như:
- Thực hiện phép tính số học.
- So sánh hai giá trị.
- Kết hợp nhiều điều kiện.
- Gán giá trị cho biến.
- Thao tác với chuỗi.
- Làm việc với mảng.
- Kiểm tra kiểu dữ liệu.
Ví dụ đơn giản:
<?php
$a = 10;
$b = 5;
echo $a + $b;
?>
Dấu + chính là toán tử thực hiện phép cộng giữa hai biến.
Phân loại các toán tử trong PHP
PHP hỗ trợ khá nhiều nhóm toán tử khác nhau. Mỗi nhóm được thiết kế để phục vụ một mục đích riêng trong quá trình lập trình.
| Nhóm | Mục đích |
|---|---|
| Toán tử số học | Tính toán các giá trị số |
| Toán tử gán | Gán hoặc cập nhật giá trị |
| Toán tử so sánh | So sánh hai giá trị |
| Toán tử logic | Kết hợp nhiều điều kiện |
| Toán tử tăng giảm | Tăng hoặc giảm giá trị biến |
| Toán tử chuỗi | Nối chuỗi |
| Toán tử mảng | Làm việc với Array |
| Toán tử điều kiện | Rút gọn câu lệnh điều kiện |
| Toán tử Null | Kiểm tra giá trị null |
| Toán tử Bitwise | Thao tác trên bit |
| Toán tử kiểu dữ liệu | Kiểm tra đối tượng và kiểu dữ liệu |
Toán tử số học
Đây là nhóm toán tử được sử dụng nhiều nhất trong lập trình. Chúng giúp thực hiện các phép tính cơ bản.
| Toán tử | Ý nghĩa |
|---|---|
| + | Cộng |
| - | Trừ |
| * | Nhân |
| / | Chia |
| % | Chia lấy dư |
| ** | Lũy thừa |
Ví dụ:
<?php
$a = 12;
$b = 5;
echo $a + $b;
echo $a - $b;
echo $a * $b;
echo $a / $b;
echo $a % $b;
echo $a ** 2;
?>
Khi nào nên dùng toán tử chia lấy dư?
Toán tử % thường được dùng để:
- Kiểm tra số chẵn lẻ.
- Xác định chu kỳ.
- Phân trang.
- Luân phiên màu sắc.
- Tính vòng lặp.
Ví dụ kiểm tra số chẵn:
<?php
if ($number % 2 == 0) {
echo "Số chẵn";
}
?>
Toán tử gán
Toán tử gán giúp lưu giá trị vào biến hoặc cập nhật giá trị hiện tại.
| 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 |
Ví dụ:
<?php
$total = 100;
$total += 50;
$total -= 10;
$total *= 2;
echo $total;
?>
Ưu điểm của toán tử gán kết hợp
- Viết ngắn hơn.
- Dễ đọc.
- Giảm việc lặp lại tên biến.
- Tăng khả năng bảo trì mã nguồn.
Toán tử so sánh
Nhóm toán tử này trả về giá trị true hoặc false.
| Toán tử | Ý nghĩa |
|---|---|
| == | Bằng nhau về giá trị |
| === | Bằng nhau cả giá trị và kiểu dữ liệu |
| != | Khác giá trị |
| Khác giá trị | |
| !== | Khác giá trị hoặc khác kiểu |
| > | Lớn hơn |
| Nhỏ hơn | |
| >= | Lớn hơn hoặc bằng |
| Nhỏ hơn hoặc bằng |
Ví dụ:
<?php
$a = 100;
$b = "100";
var_dump($a == $b);
var_dump($a === $b);
?>
Khác biệt giữa == và ===
Đây là điểm rất nhiều lập trình viên mới bắt đầu dễ nhầm.
- == chỉ so sánh giá trị.
- === so sánh cả giá trị lẫn kiểu dữ liệu.
Ví dụ:
<?php
10 == "10"; // true
10 === "10"; // false
?>
Trong các dự án thực tế, nên ưu tiên sử dụng === để tránh lỗi do PHP tự động ép kiểu dữ liệu.
Toán tử logic
Toán tử logic được sử dụng để kết hợp nhiều điều kiện trong một biểu thức. Chúng thường xuất hiện trong các câu lệnh if, elseif, while, for và nhiều tình huống kiểm tra điều kiện khác.
| Toán tử | Ý nghĩa |
|---|---|
| && | Đúng khi tất cả điều kiện đều đúng |
| || | Đúng khi chỉ cần một điều kiện đúng |
| ! | Phủ định điều kiện |
| and | Tương tự && nhưng có độ ưu tiên thấp hơn |
| or | Tương tự || nhưng có độ ưu tiên thấp hơn |
| xor | Đúng khi chỉ một trong hai điều kiện đúng |
Ví dụ:
<?php
$age = 22;
$active = true;
if ($age >= 18 && $active) {
echo "Được phép truy cập";
}
?>
Sự khác nhau giữa && và and
Hai toán tử này đều có chức năng giống nhau nhưng khác về mức độ ưu tiên khi thực hiện biểu thức.
Ví dụ:
<?php
$result = true && false;
$result2 = true and false;
var_dump($result);
var_dump($result2);
?>
Kết quả sẽ khác nhau vì toán tử = có độ ưu tiên khác với and. Trong hầu hết trường hợp, nên sử dụng && và || để tránh nhầm lẫn.
Toán tử tăng và giảm
Đây là nhóm toán tử giúp tăng hoặc giảm giá trị của biến thêm một đơn vị.
| Toán tử | Ý nghĩa |
|---|---|
| ++$a | Tăng trước rồi mới sử dụng |
| $a++ | Sử dụng trước rồi mới tăng |
| --$a | Giảm trước rồi mới sử dụng |
| $a-- | Sử dụng trước rồi mới giảm |
Ví dụ:
<?php
$a = 5;
echo ++$a;
echo $a++;
echo $a;
?>
Hiểu rõ Prefix và Postfix
Hai cách viết có vẻ giống nhau nhưng kết quả lại khác.
Tiền tố (Prefix):
<?php
$x = 10;
echo ++$x;
?>
Kết quả:
11
Hậu tố (Postfix):
<?php
$x = 10;
echo $x++;
?>
Kết quả lần đầu sẽ là 10, sau đó biến mới tăng lên 11.
Đây là điểm thường gặp trong các vòng lặp hoặc biểu thức tính toán.
Toán tử chuỗi
PHP cung cấp toán tử dành riêng cho việc xử lý chuỗi ký tự.
| Toán tử | Ý nghĩa |
|---|---|
| . | Nối chuỗi |
| .= | Nối chuỗi rồi gán |
Ví dụ:
<?php
$first = "Web";
$second = "Mới";
echo $first . " " . $second;
?>
Ví dụ với toán tử .=:
<?php
$text = "Xin chào";
$text .= " PHP";
echo $text;
?>
Khi nào nên dùng toán tử nối chuỗi?
- Tạo tiêu đề.
- Ghép đường dẫn.
- Xây dựng URL.
- Tạo thông báo.
- Xuất nội dung HTML.
Toán tử điều kiện ba ngôi
Toán tử ba ngôi (Ternary Operator) giúp rút gọn câu lệnh if...else trong những trường hợp đơn giản.
Cú pháp:
<?php
$condition ? $value1 : $value2;
?>
Ví dụ:
<?php
$age = 20;
echo ($age >= 18) ? "Đủ tuổi" : "Chưa đủ tuổi";
?>
Khi nào không nên sử dụng?
Mặc dù ngắn gọn nhưng không nên lồng quá nhiều toán tử ba ngôi vì sẽ khiến mã nguồn khó đọc.
Không nên:
<?php
echo $a ? ($b ? "A" : "B") : ($c ? "C" : "D");
?>
Trong các điều kiện phức tạp, nên sử dụng if...elseif...else để mã nguồn rõ ràng hơn.
Toán tử Null Coalescing
Toán tử ?? được bổ sung từ PHP 7 nhằm giúp kiểm tra biến có tồn tại hoặc có giá trị hay không.
Cú pháp:
<?php
$value = $variable ?? "Giá trị mặc định";
?>
Ví dụ:
<?php
$username = $_GET["user"] ?? "Guest";
echo $username;
?>
Toán tử này giúp thay thế đoạn mã dài:
<?php
if (isset($_GET["user"])) {
$username = $_GET["user"];
} else {
$username = "Guest";
}
?>
Lợi ích của toán tử ??
- Viết mã ngắn hơn.
- Dễ đọc.
- Giảm số lượng câu lệnh if.
- Hạn chế lỗi Undefined Index.
Toán tử trên mảng
PHP cung cấp một số toán tử chuyên dùng để xử lý mảng. Không giống các toán tử số học hay chuỗi, nhóm toán tử này hỗ trợ việc so sánh và kết hợp các phần tử giữa nhiều mảng.
| Toán tử | Ý nghĩa |
|---|---|
| + | Hợp nhất hai mảng |
| == | Hai mảng có cùng cặp key và value |
| === | Giống nhau cả key, value và thứ tự |
| != | Hai mảng khác nhau |
| Hai mảng khác nhau | |
| !== | Khác giá trị hoặc khác thứ tự |
Toán tử hợp nhất mảng (+)
Khi sử dụng toán tử +, PHP sẽ giữ nguyên các phần tử của mảng bên trái nếu hai mảng có cùng khóa (key).
Ví dụ:
<?php
$array1 = [
"a" => "HTML",
"b" => "CSS"
];
$array2 = [
"b" => "PHP",
"c" => "JavaScript"
];
$result = $array1 + $array2;
print_r($result);
?>
Kết quả:
- Khóa a lấy từ mảng đầu.
- Khóa b vẫn giữ giá trị của mảng đầu.
- Khóa c được bổ sung từ mảng thứ hai.
Đây là điểm khác biệt với nhiều hàm xử lý mảng như array_merge(), vốn sẽ ghi đè hoặc đánh lại chỉ mục trong một số trường hợp.
So sánh hai mảng
Ví dụ:
<?php
$array1 = [
"name" => "Web Mới",
"year" => 2026
];
$array2 = [
"name" => "Web Mới",
"year" => 2026
];
var_dump($array1 == $array2);
var_dump($array1 === $array2);
?>
Nếu thay đổi thứ tự các phần tử, toán tử === có thể trả về false mặc dù dữ liệu giống nhau.
Toán tử Bitwise
Bitwise Operator là nhóm toán tử thao tác trực tiếp trên từng bit của số nguyên. Chúng ít xuất hiện trong các website thông thường nhưng lại rất hữu ích trong các lĩnh vực như mã hóa dữ liệu, xử lý quyền truy cập, tối ưu bộ nhớ hoặc lập trình hệ thống.
| Toán tử | Ý nghĩa |
|---|---|
| & | AND theo bit |
| | | OR theo bit |
| ^ | XOR theo bit |
| ~ | Đảo bit |
| Dịch trái | |
| >> | Dịch phải |
Ví dụ:
<?php
$a = 6;
$b = 3;
echo $a & $b;
echo $a | $b;
echo $a ^ $b;
?>
Ứng dụng thực tế của Bitwise
- Quản lý quyền người dùng.
- Lưu trạng thái bằng cờ (Flag).
- Mã hóa dữ liệu.
- Tăng hiệu suất xử lý số nguyên.
- Lập trình giao tiếp phần cứng.
Nếu bạn chủ yếu phát triển website hoặc ứng dụng quản trị thông thường thì nhóm toán tử này sẽ ít được sử dụng hơn các nhóm còn lại.
Toán tử kiểm tra kiểu dữ liệu
PHP hỗ trợ toán tử instanceof để kiểm tra một đối tượng có thuộc một lớp hoặc kế thừa từ lớp nào đó hay không.
Ví dụ:
<?php
class Animal {}
class Dog extends Animal {}
$dog = new Dog();
var_dump($dog instanceof Dog);
var_dump($dog instanceof Animal);
?>
Kết quả:
- Đối tượng thuộc lớp Dog.
- Đồng thời cũng thuộc lớp Animal vì Dog kế thừa Animal.
Khi nào nên sử dụng instanceof?
- Lập trình hướng đối tượng.
- Kiểm tra kiểu tham số.
- Làm việc với Interface.
- Kiểm tra kế thừa.
- Đảm bảo đúng kiểu dữ liệu trước khi gọi phương thức.
Độ ưu tiên của toán tử
Khi một biểu thức có nhiều toán tử cùng xuất hiện, PHP sẽ thực hiện theo thứ tự ưu tiên. Nếu không nắm rõ quy tắc này, chương trình có thể cho kết quả khác với mong muốn.
Ví dụ:
<?php
echo 2 + 3 * 5;
?>
Kết quả sẽ là 17 thay vì 25 vì phép nhân được thực hiện trước phép cộng.
Để biểu thức rõ ràng hơn, nên sử dụng dấu ngoặc.
<?php
echo (2 + 3) * 5;
?>
Kết quả lúc này sẽ là 25.
Một số mức ưu tiên thường gặp
- Dấu ngoặc ().
- Tăng giảm trước.
- Nhân, chia, chia lấy dư.
- Cộng, trừ.
- So sánh.
- Logic.
- Gán.
Khi biểu thức trở nên phức tạp, việc thêm dấu ngoặc không chỉ giúp chương trình dễ hiểu hơn mà còn giảm nguy cơ phát sinh lỗi logic.
Những lỗi phổ biến khi sử dụng toán tử trong PHP
Nhầm lẫn giữa = và ==
Đây là lỗi rất thường gặp ở người mới học PHP.
Ví dụ sai:
<?php
if ($status = true) {
echo "Success";
}
?>
Trong trường hợp này, biến được gán giá trị thay vì so sánh nên điều kiện luôn đúng.
Lạm dụng == thay vì ===
PHP có cơ chế tự động ép kiểu dữ liệu, vì vậy việc chỉ so sánh bằng == đôi khi tạo ra kết quả ngoài mong đợi.
Nên ưu tiên sử dụng === khi cần kiểm tra chính xác cả giá trị và kiểu dữ liệu.
Không dùng dấu ngoặc trong biểu thức dài
Mặc dù PHP xử lý theo độ ưu tiên của toán tử, nhưng việc bổ sung dấu ngoặc sẽ giúp mã nguồn dễ đọc, dễ bảo trì và giảm đáng kể lỗi khi chỉnh sửa sau này.
Viết điều kiện quá phức tạp
Không nên kết hợp quá nhiều toán tử logic trong cùng một dòng lệnh.
Thay vào đó, hãy tách thành nhiều điều kiện nhỏ để việc kiểm tra và bảo trì thuận tiện hơn.
Kết luận
Toán tử là một trong những thành phần quan trọng nhất của PHP. Từ các phép tính đơn giản cho đến xử lý điều kiện, thao tác với chuỗi, mảng hay lập trình hướng đối tượng, mọi chương trình đều sử dụng các toán tử ở nhiều mức độ khác nhau.
Việc hiểu rõ đặc điểm của từng nhóm toán tử, nắm được sự khác biệt giữa các toán tử có chức năng gần giống nhau và biết cách áp dụng đúng trong từng tình huống sẽ giúp bạn viết mã nguồn rõ ràng, chính xác và chuyên nghiệp hơn. Khi kết hợp với kiến thức về biến, kiểu dữ liệu, câu lệnh điều kiện và vòng lặp, bạn sẽ có nền tảng vững chắc để phát triển các ứng dụng PHP từ cơ bản đến nâng cao.
- 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 *