post-image

PHP – Biểu thức và Toán tử

Tổng quan

Biểu thức là một tổ hợp các toán hạng và toán tử. Toán tử thực hiện các thao tác như cộng, trừ, nhân, chia, so sánh,… Toán hạng là những biến hay là những giá trị mà các phép toán được thực hiện trên nó.

Ví dụ $a + $b thì $a và $b được gọi là toán hạng, dấu + được gọi là toán tử, cả 2 kết hợp lại thành một biểu thức ($a + $b).

Các toán tử số học

Gồm các phép toán + - * / % ++ --với diễn giả và ví dụ như bảng dưới đây. Bạn có thể thử các phép toán bằng cách thay đổi số trong Form ví dụ

&A = 25

$B = 30

Toán tửDiễn tảVí dụ
+Phép cộng hai số$A + $B : 25 + 30 = 55
-Phép trừ$A – $B : 25- 30 = -5
*Phép nhân$A * $B : 25 * 30 = 750
/Phép chia$A / $B : 25 / 30 = 0.83333333333333
%modulo : Phép chia lấy dư.
Phần dư của phép chia hai số nguyên
$A / $B : 25 % 30 = 25
++Phép toán tăng thêm 1 vào biến$A++ kết quả $A = 26
--Phép toán giảm đi giá trị 1$B– kết quả $B = 29

Ví dụ: Có đoạn mã nhúng PHP vào file html như sau:

    <html>
    <head><title>Toán tử số học</title><head>
    <body>
        <?php
        $a = 25;
        $b = 30;

        $c = $a + $b;
        echo "Kết quả phép cộng: $c <br/>";
        $c = $a - $b;
        echo "Kết quả phép trừ: $c <br/>";
        $c = $a * $b;
        echo "Kết quả phép nhân: $c <br/>";
        $c = $a / $b;
        echo "Kết quả phép chia: $c <br/>";
        $c = $a % $b;
        echo "Phần dư phép chia: $c <br/>";
         
        $c = $a++;
        echo "Thêm một vào $c: $a <br/>";
       
        $c = $a--;
        echo "Giảm $a đi 1: $c <br/>";
        ?>
        </body>
    </html>
    
Kết quả phép cộng: 55 
Kết quả phép trừ: -5 
Kết quả phép nhân: 750 
Kết quả phép chia: 0.8333333333333 
Phần dư phép chia: 25 
Thêm một vào 25: 26 
Giảm 30 đi 1: 29 

Toán tử quan hệ (so sánh) trong PHP

Bảng dưới liệt kê các toán tử so sánh được hỗ trợ bởi ngôn ngữ PHP. Giả sử biến $a giữ giá trị 10, biến $b giữ giá trị 20, thì:

Toán tửMiêu tảBiểu Thức Ví dụ
==Kiểm tra nếu 2 toán hạng bằng nhau hay không. Nếu bằng thì điều kiện là true.($a == $b) là false.
!=Kiểm tra 2 toán hạng có giá trị khác nhau hay không. Nếu không bằng thì điều kiện là true.($a != $b) là true.
>Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn toán hạng bên phải hay không. Nếu lớn hơn thì điều kiện là true.($a > $b) là false.
<Kiểm tra nếu toán hạng bên trái nhỏ hơn toán hạng bên phải hay không. Nếu nhỏ hơn thì là true.($a < $b) là true.
>=Kiểm tra nếu toán hạng bên trái có giá trị 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 đúng là true.($a >= $b) là false.
<=Kiểm tra nếu toán hạng bên trái có giá trị nhỏ hơn hoặc bằng toán hạng bên phải hay không. Nếu đúng là true.($a <= $b) là true.

Ngoài ra còn có toán tử quan hệ === dùng để so sánh giá trị giữa các biến và hằng đúng theo giá trị và kiểu dữ liệu của nó.

Ví dụ ta có $a = ’123′ là kiểu string, $b = 123 là kiểu int thì phép ($a == $b) cho kết quả là true, còn phép ($a === $b) sẽ cho kết quả là false vì 2 biến tuy giá trị bằng nhau nhưng không cùng kiểu dữ liệu.

=> Toán tử quan hệ ===mang tính chất tuyệt đối.

Toán tử luận lý logic trong PHP

Toán tử luận lý là ký hiệu dùng để kết hợp hay phủ định biểu thức có chứa các toán tử quan hệ, những biểu thức dùng toán tử luận lý trả về giá trị TRUE hoặc FALSE.

Bảng dưới đây chỉ rõ tất cả các toán tử logic được hỗ trợ bởi ngôn ngữ PHP. Giả sử biến $a có giá trị 10 và biến $b có giá trị 20, thì:

Toán tửMiêu tảBiểu Thức Ví dụ
andĐược gọi là toán tử Logic AND. Nếu cả hai toán hạng là true thì điều kiện trở thành true($a and $b) là true.
orĐược gọi là toán tử Logic OR. Nếu một trong hai toán hạng là đúng thì điều kiện trở thành true($a or $b) là true.
&&Được gọi là toán tử Logic AND. Nếu cả hai toán hạng là true thì điều kiện trở thành true($a && $b) là true.
||Được gọi là toán tử Logic OR. Nếu một trong hai toán hạng là đúng thì điều kiện trở thành true($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. Nếu điều kiện là true thì toán tử Logic NOT sẽ cho kết quả là false!($a && $b) là false.

Độ ưu tiên toán tử luận lý

Độ ưu tiên theo thứ tự như sau: NOT -> AND -> OR

Toán tử gán trong PHP

Dưới đây là những toán tử gán được hỗ trợ bởi ngôn ngữ PHP:

Toán tửMiêu tảBiểu Thức Ví dụ
=Toán tử gán đơn giản. Gán giá trị toán hạng bên phải cho toán hạng trái$c = $a + $b sẽ gán giá trị của $a + $b vào trong $c
+=Thêm giá trị toán hạng phải tới toán hạng trái và gán giá trị đó cho toán hạng trái$c += $a là tương đương với $c = $c + $a
-=Trừ đi giá trị toán hạng phải từ toán hạng trái và gán giá trị này cho toán hạng trái$c -= $a là tương đương với $c = $c – $a
*=Nhân giá trị toán hạng phải với toán hạng trái và gán giá trị này cho toán hạng trái$c *= $a là tương đương với $c = $c * $a
/=Chia toán hạng trái cho toán hạng phải và gán giá trị này cho toán hạng trái$c /= $a là tương đương với $c = $c / $a
%=Lấy phần dư của phép chia toán hạng trái cho toán hạng phải và gán cho toán hạng trái$c %= $a là tương đương với $c = $c % $a

//ví dụ$a = $b = $c =10; //gán các toán hạng bằng nhau

Toán tử Ternary trong PHP

Toán tử Ternary ước lượng một biểu thức là true hoặc false và sau đó thực thi một trong hai lệnh đã cho tùy thuộc vào kết quả của việc ước lượng. Toán tử điều kiện có cú pháp như sau:

Toán tửMiêu tảVí dụ
? :Biểu thức điều kiệnNếu điều kiện là true ? Thì giá trị X : Nếu không thì giá trị Y

Đặc biệt: Spaceship Operator

Toán tử Spaceship mới (<=>) được giới thiệu trong phiên bản PHP 7, có thể được sử dụng để so sánh hai biểu thức. Nó còn được gọi là toán tử so sánh kết hợp.

Toán tử Spaceship trả về giá trị sau

  • 0 nếu cả hai toán hạng đều bằng nhau
  • 1 nếu bên trái lớn hơn
  • -1 nếu bên phải lớn hơn
Toán tử<=> Tương đương
$x < $y($x <=> $y) === -1
$x <= $y($x <=> $y) === -1 || ($x <=> $y) === 0
$x == $y($x <=> $y) === 0
$x != $y($x <=> $y) !== 0
$x >= $y($x <=> $y) === 1 || ($x <=> $y) === 0
$x > $y($x <=> $y) === 1

Nếu sử dụng toán tử thông thường thì chỉ trả về True hoặc False. Nhưng khi cần để thực hiện tiếp một công việc đặc thù nào đó thì toán tử Spaceship sẽ nhanh hơn.

via laptrinhvienphp.com

Phân loại toán tử trong PHP

Tất cả toán tử ở trên có thể được phân thành các loại sau trong PHP:

  • Toán tử một ngôi (unary operator), mà đặt trước một toán hạng.
  • Toán tử nhị phân (binary operator), nhận hai toán hạng và thực hiện các hoạt động số học và logic đa dạng.
  • Tiếp theo là Toán tử điều kiện (ternary operator) hay là toán tử tam ngôi, nhận ba toán hạng và ước lượng hoặc biểu thức thứ hai hoặc biểu thức thứ ba, phụ thuộc vào kết quả ước lượng của biểu thức đầu tiên.
  • Toán tử gán, mà gán một giá trị cho một biến.

Độ ưu tiên của các toán tử trong PHP

Độ ưu tiên các toán tử trong PHP thiết lập thứ tự ưu tiên tính toán của một biểu thức. Hay nói cách khác, Thứ tự ưu tiên toán tử trong PHP xác định cách biểu thức được tính toán.

Ví dụ: toán tử nhân có quyền ưu tiên hơn toán tử cộng, và nó được thực hiện trước.

LoạiToán tửThứ tự ưu tiên
Unary! , ++ , —Phải sang trái
Tính nhân* , / , %Trái sang phải
Tính cộng+ , Trái sang phải
Quan hệ< , <= , > , >=Trái sang phải
Tính bằng== , !=Trái sang phải
Logic AND&&Trái sang phải
Logic OR||Trái sang phải
Điều kiện?:Phải sang trái
Gán= , += , -= , *= , /= , %=Phải sang trái

Lưu ý: Việc tính toán biểu thức số học sẽ được tính toán từ trái qua phải và ưu tiên trong ngoặc trước kết hợp với độ ưu tiên trong bảng.

Tổng kết

Bài viết trên mình đã giới thiệu cho các bạn các loại toán tử trong PHP và các biểu thức liên quan đến nó, các bạn thấy thắc mắc chỗ nào cứ để lại bình luận bên dưới bài viết để cùng thảo luận nhé! Sang bài học tiếp theo mình sẽ nói qua về các loại biểu thức điều kiện quan trọng trong PHP. Các bạn nhớ đón đọc nhé!

Xem thêm:

Leave a Reply

Your email address will not be published. Required fields are marked *