Tiếp tục series học PHP căn bản, bài viết này mình sẽ nói về toán tử. Trong ngôn ngữ PHP nói riêng và các ngôn ngữ lập trình nói chung thường hỗ trợ một tập các toán tử (operator): nó có hành vi gần giống như hàm, nhưng có cú pháp và ngữ nghĩa khác với hàm thông thường. Các ví dụ đơn giản thông dụng bao gồm toán tử số học (phép cộng với +), so sánh (với >), và logic (như AND hay &&).
Ngôn ngữ PHP hỗ trợ các kiểu toán tử sau
- Toán tử số học
- Toán tử so sánh (hay toán tử quan hệ)
- Toán tử logic (hay toán tử luận lý)
- Toán tử gán
- Toán tử điều kiện (hoặc toán tử 3 ngôi)
Trước khi tham gia soi mó vào các toán tử trên, ta cần phải biết thêm 1 khái niệm nữa đó là Biểu Thức.
Khái Niệm Về Biểu Thức
Biểu thức là sự kết hợp của một hay nhiều giá trị, hằng số, biến, toán tử, và hàm,… Mói một cách khác, Biểu Thức là một tập hợp bao gồm các toán hạng và toán tử.
Toán hạng là những giá trị, hằng số, biến,…được truyền vào trong phép toán. Toán tử (operator) là các phép tính + , – , * , / , % ,…
Toán tử số học trong PHP
Bảng dưới liệt kê các toán tử số học được hỗ trợ bởi ngôn ngữ PHP:
Giả sử biến $a giữ giá trị 10, biến $b giữ giá trị là 20 thì:
Toán tử | Miêu tả | Biểu Thức Ví dụ |
---|---|---|
+ | $cộng hai toán hạng | $a + $b kết quả là 30 |
– | Trừ toán hạng thứ hai từ toán hạng đầu | $a – $b kết quả là -10 |
* | Nhân hai toán hạng | $a * $b kết quả là 200 |
/ | Phép chia | $b / $a kết quả là 2 |
% | Phép lấy số dư | $b % $a kết quả là 0 |
++ | Toán tử tăng, tăng giá trị toán hạng thêm một đơn vị | $a++ kết quả là 11 |
— | Toán tử giảm, giảm giá trị toán hạng đi một đơn vị | $a– kết quả là 9 |
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ử điều kiện trong PHP
Có nhiều hơn một toán tử được gọi là toán tử điều kiện. Đầu tiên, nó ướ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ện | Nế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.
- 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ại | Toá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.
Kết thúc
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:
CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ