Tổng hợp các toán tử trong PHP

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

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.

Tổng hợp các toán tử trong PHP

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 &&|| để 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

  1. Dấu ngoặc ().
  2. Tăng giảm trước.
  3. Nhân, chia, chia lấy dư.
  4. Cộng, trừ.
  5. So sánh.
  6. Logic.
  7. 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
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ác toán tử trong 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