Các loại toán tử trong PHP

Toán tử là gì?

Câu trả lời đơn giản có thể giải thích bằng cách sử dụng biểu thức 4 + 5 = 9 . Ở đây 4 và 5 được gọi là toán hạng và + được gọi là toán tử. Ngôn ngữ PHP hỗ trợ những loại toán tử sau.

  • Toán tử số học.
  • Toán tử so sánh.
  • Toán tử logic (hoặc toán tử quan hệ)
  • Toán tử gán.
  • Toán tử có điều kiện (hoặc toán tử tam phân)

Bây giờ chúng ta sẽ cùng tìm hiểu từng loại toán tử trong PHP.

Toán tử số học

Có các toán tử số học sau được hỗ trợ bởi ngôn ngữ PHP. Giả sử biến A = 10 và biến B = 20 thì:

Toán tử Miêu tả Ví dụ
+ Cộng hai toán hạng A + B bằng 30
- Trừ toán hạng thứ nhất cho toán hạng thứ hai A - B bằng -10
* Nhân cả hai toán hạng A * B bằng 200
/ Chia toán hạng B cho toán hạng A B / A bằng 2
% Toán tử mô đun và phần còn lại sau khi chia số nguyên B % A bằng 0
++ Toán tử tăng, tăng giá trị số nguyên lên một A++ bằng 11
-- Toán tử giảm, giảm giá trị số nguyên xuống một A-- bằng 9

Ví dụ dưới đây minh họa toán tử số học trong PHP:

<html>
   
   <head>
      <title>Toán tử số học trong PHP</title>
   </head>
   
   <body>
   
      <?php
         $a = 42;
         $b = 20;
         
         $c = $a + $b;
         echo "Addtion Operation Result: $c <br/>";
         
         $c = $a - $b;
         echo "Substraction Operation Result: $c <br/>";
         
         $c = $a * $b;
         echo "Multiplication Operation Result: $c <br/>";
         
         $c = $a / $b;
         echo "Division Operation Result: $c <br/>";
         
         $c = $a % $b;
         echo "Modulus Operation Result: $c <br/>";
         
         $c = $a++; 
         echo "Increment Operation Result: $c <br/>";
         
         $c = $a--; 
         echo "Decrement Operation Result: $c <br/>";
      ?>
   
   </body>
</html>

Đây là kết quả:

Addtion Operation Result: 62 
Substraction Operation Result: 22 
Multiplication Operation Result: 840 
Division Operation Result: 2.1 
Modulus Operation Result: 2 
Increment Operation Result: 42 
Decrement Operation Result: 43 

Toán tử so sánh

Có các toán tử so sánh sau được hỗ trợ bởi ngôn ngữ PHP. Giả sử biến A = 10 và biến B = 20 thì:

Toán tử Miêu tả Ví dụ
== Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu có thì điều kiện trở thành đúng. (A == B) là false.
!= Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu giá trị không bằng nhau thì điều kiện trở thành đúng. (A != B) là true.
> Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành đúng. (A > B) là false.
< Kiểm tra xem giá trị của toán hạng bên trái nhỏ hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành đúng. (A < B) là true.
>= Kiểm tra xem giá trị của toán hạng bên trái lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành đúng. (A >= B) là false.
<= Kiểm tra xem giá trị của toán hạng bên trái nhỏ hơn hoặc bằng giá trị của toán hạng bên phải, nếu có thì điều kiện trở thành đúng. (A <= B) là true.

Ví dụ dưới đây minh họa toán tử so sánh trong PHP:

<html>
   
   <head>
      <title>Toán tử so sánh trong PHP</title>
   </head>
   
   <body>
      
      <?php
         $a = 42;
         $b = 20;
      
         if( $a == $b ) {
            echo "TEST1 : a is equal to b<br/>";
         }else {
            echo "TEST1 : a is not equal to b<br/>";
         }
      
         if( $a > $b ) {
            echo "TEST2 : a is greater than  b<br/>";
         }else {
            echo "TEST2 : a is not greater than b<br/>";
         }
      
         if( $a < $b ) {
            echo "TEST3 : a is less than  b<br/>";
         }else {
            echo "TEST3 : a is not less than b<br/>";
         }
      
         if( $a != $b ) {
            echo "TEST4 : a is not equal to b<br/>";
         }else {
            echo "TEST4 : a is equal to b<br/>";
         }
      
         if( $a >= $b ) {
            echo "TEST5 : a is either greater than or equal to b<br/>";
         }else {
            echo "TEST5 : a is neither greater than nor equal to b<br/>";
         }
      
         if( $a <= $b ) {
            echo "TEST6 : a is either less than or equal to b<br/>";
         }else {
            echo "TEST6 : a is neither less than nor equal to b<br/>";
         }
      ?>
      
   </body>
</html>

Đây là kết quả:

TEST1 : a is not equal to b
TEST2 : a is greater than b
TEST3 : a is not less than b
TEST4 : a is not equal to b
TEST5 : a is either greater than or equal to b
TEST6 : a is neither less than nor equal to b

Toán tử logic

Có các toán tử logic sau được hỗ trợ bởi ngôn ngữ PHP. Giả sử biến A = 10 và biến B = 20 thì:

Toán tử Miêu tả Ví dụ
and Được gọi là toán tử logic AND. Nếu cả hai toán hạng đều đúng thì điều kiện trở thành đúng. (A and B) là true.
or Được gọi là toán tử logic OR. Nếu bất kỳ một trong hai toán hạng đúng thì điều kiện sẽ trở thành đúng. (A or B) là true.
&& Được gọi là toán tử logic AND. Nếu cả hai toán hạng đều đúng thì điều kiện trở thành đúng. (A && B) là true.
|| Được gọi là toán tử logic OR. Nếu bất kỳ một trong hai toán hạng đúng thì điều kiện sẽ trở thành đúng. (A || B) là true.
! Được gọi là toán tử logic NOT. Sử dụng để đảo ngược trạng thái logic của toán hạng của nó. Nếu một điều kiện là đúng thì toán tử logic NOT sẽ đảo ngược thành sai. !(A && B) là false.

Ví dụ dưới đây minh họa toán tử logic trong PHP:

<html>
   
   <head>
      <title>Toán tử logic trong PHP</title>
   </head>
   
   <body>
      
      <?php
         $a = 42;
         $b = 0;
         
         if( $a && $b ) {
            echo "TEST1 : Both a and b are true<br/>";
         }else{
            echo "TEST1 : Either a or b is false<br/>";
         }
         
         if( $a and $b ) {
            echo "TEST2 : Both a and b are true<br/>";
         }else{
            echo "TEST2 : Either a or b is false<br/>";
         }
         
         if( $a || $b ) {
            echo "TEST3 : Either a or b is true<br/>";
         }else{
            echo "TEST3 : Both a and b are false<br/>";
         }
         
         if( $a or $b ) {
            echo "TEST4 : Either a or b is true<br/>";
         }else {
            echo "TEST4 : Both a and b are false<br/>";
         }
         
         $a = 10;
         $b = 20;
         
         if( $a ) {
            echo "TEST5 : a is true <br/>";
         }else {
            echo "TEST5 : a  is false<br/>";
         }
         
         if( $b ) {
            echo "TEST6 : b is true <br/>";
         }else {
            echo "TEST6 : b  is false<br/>";
         }
         
         if( !$a ) {
            echo "TEST7 : a is true <br/>";
         }else {
            echo "TEST7 : a  is false<br/>";
         }
         
         if( !$b ) {
            echo "TEST8 : b is true <br/>";
         }else {
            echo "TEST8 : b  is false<br/>";
         }
      ?>
      
   </body>
</html>

Đây là kết quả:

TEST1 : Either a or b is false
TEST2 : Either a or b is false
TEST3 : Either a or b is true
TEST4 : Either a or b is true
TEST5 : a is true 
TEST6 : b is true 
TEST7 : a is false
TEST8 : b is false

Toán tử gán

Có các toán tử gán sau được hỗ trợ bởi ngôn ngữ PHP:

Toán tử Miêu tả Ví dụ
= Gán các giá trị từ toán hạng bên phải cho toán hạng bên trái C = A + B sẽ gán giá trị của A + B vào C
+= Nó cộng toán hạng bên phải vào toán hạng bên trái và gán kết quả cho toán hạng bên trái C += A tương đương với C = C + A
-= Nó trừ toán hạng bên trái cho toán hạng bên phải và gán kết quả cho toán hạng bên trái C -= A tương đương với C = C - A
*= Nó nhân toán hạng bên phải với toán hạng bên trái và gán kết quả cho toán hạng bên trái C *= A tương đương với C = C * A
/= Nó chia toán hạng bên trái với toán hạng bên phải và gán kết quả cho toán hạng bên trái C /= A tương đương với C = C / A
%= Nó lấy mô đun sử dụng hai toán hạng và gán kết quả cho toán hạng bên trái C %= A tương đương với C = C % A

Ví dụ dưới đây minh họa toán tử gán trong PHP:

<html>
   
   <head>
      <title>Toán tử gán trong PHP</title>
   </head>
   
   <body>
      
      <?php
         $a = 42;
         $b = 20;
         
         $c = $a + $b;  
         echo "Addtion Operation Result: $c <br/>";
         
         $c += $a;  
         echo "Add AND Assigment Operation Result: $c <br/>";
         
         $c -= $a;
         echo "Subtract AND Assignment Operation Result: $c <br/>";
         
         $c *= $a; 
         echo "Multiply AND Assignment Operation Result: $c <br/>";
         
         $c /= $a; 
         echo "Division AND Assignment Operation Result: $c <br/>";
         
         $c %= $a;
         echo "Modulus AND Assignment Operation Result: $c <br/>";
      ?>
      
   </body>
</html>

Đây là kết quả:

Addtion Operation Result: 62 
Add AND Assigment Operation Result: 104 
Subtract AND Assignment Operation Result: 62 
Multiply AND Assignment Operation Result: 2604 
Division AND Assignment Operation Result: 62 
Modulus AND Assignment Operation Result: 20 

Toán tử điều kiện

Có một toán tử nữa được gọi là toán tử điều kiện (toán tử tam phân). Toán tử này trước tiên đánh giá một biểu thức cho một giá trị đúng hoặc sai và sau đó thực hiện một trong hai câu lệnh đã cho tùy thuộc vào kết quả đánh giá.

Toán tử điều kiện có cú pháp như sau:

Kiểm tra điều kiện ? Nếu đúng thì trả về giá trị X : Nếu sai thì trả về giá trị Y.

Ví dụ dưới đây minh họa toán tử có điều kiện trong PHP:

<html>
   
   <head>
      <title>Toán tử có điều kiện trong PHP</title>
   </head>
   
   <body>
   
      <?php
         $a = 10;
         $b = 20;
         
         /* If condition is true then assign a to result otheriwse b */
         $result = ($a > $b ) ? $a :$b;
         
         echo "TEST1 : Value of result is $result<br/>";
         
         /* If condition is true then assign a to result otheriwse b */
         $result = ($a < $b ) ? $a :$b;
         
         echo "TEST2 : Value of result is $result<br/>";
      ?>
   
   </body>
</html>

Đây là kết quả:

TEST1 : Value of result is 20
TEST2 : Value of result is 10

Phân loại toán tử

Tất cả các toán tử chúng ta đã thảo luận ở trên có thể được phân loại thành các loại sau:

  • Toán tử đơn phương, nó đứng trước một toán hạng.
  • Toán tử nhị phân, nó có hai toán hạng và thực hiện các phép toán số học và logic.
  • Toán tử điều kiện (một toán tử tam phân), nó thực hiện biểu thức thứ hai hoặc thứ ba tùy thuộc vào việc đánh giá biểu thức thứ nhất.
  • Toán tử gán, nó gán giá trị cho một biến.

Ưu tiên của các toán tử PHP

Ưu tiên của toán tử xác định các nhóm các điều kiện trong một biểu thức. Điều này ảnh hưởng đến cách một biểu thức được đánh giá.

Một số toán tử có quyền ưu tiên cao hơn những toán tử khác; ví dụ, toán tử nhân có độ ưu tiên cao hơn toán tử cộng.

Ví dụ: x = 7 + 3 * 2; Ở đây x được gán 13, không phải 20 vì toán tử * có độ ưu tiên cao hơn + nên trước tiên nó thực hiện nhân với 3 * 2 và sau đó cộng vào 7.

Trong bảng dưới đây các toán tử có quyền ưu tiên cao nhất xuất hiện ở đầu bảng, những toán tử có mức thấp nhất xuất hiện ở cuối bảng. Trong một biểu thức, các toán tử ưu tiên cao hơn sẽ được đánh giá đầu tiên.

Phân loại Toán tử Kết hợp
Đơn phương !  ++  - Phải sang trái
Nhân chia *  /  % Trái sang phải
Cộng trừ +  - Trái sang phải
Quan hệ <  <=  >  >= Trái sang phải
Bình đẳng ==  != Trái sang phải
Logic AND && Trái sang phải
Hợp lý OR || Trái sang phải
Điều kiện ? : Phải sang trái
Gán =  +=  -=  *=  /=  %= Phải sang trái


Bài viết liên quan:

Hướng dẫn lập trình PHP toàn tập sẽ giúp bạn từng bước tìm hiểu và nắm vững ngôn ngữ lập trình PHP.

Hướng dẫn cách truy xuất, lọc, sắp xếp dữ liệu MySQL trong PHP sử dụng MySQLi và PDO.

MySQL prepared statements trong PHP rất hữu ích để chống lại các cuộc tấn công SQL Injection.