Khái niệm về toán tử và phân loại toán tử PHP
Xem xét một biểu thức tính toán trong PHP ví dụ: 10 + 15, đây là phép cộng cho giá trị là 25. Trong biểu thức đó các số 10, 15 gọi là toán hạng ký hiệu + chính là toán tử của phép cộng.
Trong PHP có nhiều toán tử được phân loại thành 5 nhóm như sau:
- TOÁN TỬ PHP
- Các toán tử số học
- Các toán tử so sánh
- Các toán tử Logic
- Các toán tử gán
- Các toán tử điều kiện
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ụ
+ | Phép cộng hai số | $A + $B : 94 + 26 = 120 |
- | Phép trừ | $A - $B : 94 - 26 = 68 |
* | Phép nhân | $A * $B : 94 * 26 = 2444 |
/ | Phép chia | $A / $B : 94 / 26 = 3.6153846153846 |
% | modulo : Phép chia lấy dư. Phần dư của phép chia hai số nguyên | $A / $B : 94 % 26 = 16 |
++ | Phép toán tăng thêm 1 vào biến | $A++ kết quả $A = 95 |
-- | Phép toán giảm đi giá trị 1 | $B-- kết quả $B = 25 |
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 = 94; $b = 26; $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: 120
Kết quả phép trừ: 68
Kết quả phép nhân: 2444
Kết quả phép chia: 3.6153846153846
Phần dư phép chia: 16
Thêm một vào 94: 95
Giảm 95 đi 1: 94
Toán tử so sánh
Các toán tử so sánh trong PHP gồm có: == != > < >= <=
Cách sử dụng các toán tử này được mô tả như bảng sau: Giả sử có hai số $C và $D với các giá trị thiết lập như sau:
== | So sánh bằng: true nếu hai toán hạng bằng nhau và false nếu khác | $C == $D ≡ 24 == 16 ≡ false |
!= | So sánh khác: nếu hai toán hạng có giá trị khác nhau thì có giá trị true, giá trị giống nhau thì là false | $C != $D ≡ 24 != 16 ≡ true |
> | So sánh lớn hơn: true nếu toán hạng thứ nhất lớn hơn toán hạng thứ hai | $C > $D ≡ 24 > 16 ≡ true |
>= | So sánh lớn hơn hoặc bằng: true nếu toán hạng thứ nhất lớn hơn hoặc bằng toán hạng thứ hai | $C >= $D ≡ 24 >= 16 ≡ true |
< | So sánh nhỏ hơn: true nếu toán hạng thứ nhất nhỏ hơn toán hạng thứ hai | $C > $D ≡ 24 < 16 ≡ false |
<= | So sánh nhỏ hơn hoặc bằng: true nếu toán hạng thứ nhất nhỏ hơn hoặc bằng toán hạng thứ hai | $C <= $D ≡ 24 <= 16 ≡ false |
Ví dụ, có file HTML nhúng mã PHP như sau:
<html> <head><title>Ví dụ về toán tử so sánh</title><head> <body> <?php $a = 24; $b = 16; if( $a == $b ){ echo "a bằng b<br/>"; }else{ echo "a không bằng b<br/>"; } if( $a > $b ){ echo "a lớn hơn b<br/>"; }else{ echo "a không lớn hơn b<br/>"; } if( $a < $b ){ echo "a nhỏ hơn b<br/>"; }else{ echo "a không nhỏ hơn b<br/>"; } if( $a != $b ){ echo "a khác b<br/>"; }else{ echo "b bằng b<br/>"; } if( $a >= $b ){ echo "a lớn hơn hoặc bằng b<br/>"; }else{ echo "a không lớn hơn hoặc bằng<br/>"; } if( $a <= $b ){ echo "a nhỏ hơn hoặc bằng b<br/>"; }else{ echo "a không nhỏ hơn hoặc bằng b<br/>"; } ?> </body> </html>Chạy code trên ra kết quả như sau (a = 24; b = 16):
a không bằng ba lớn hơn b
a không nhỏ hơn b
a khác b
a lớn hơn hoặc bằng b
a không nhỏ hơn hoặc bằng b
Toán tử Logic
Các toán tử logic là: and or && || và !
Giả sử $A và $B là hai số bạn thiết lập giá trị của chúng như sau:
Lưu ý vì quy tắc chuyển đổi biến, trong biểu thức logic nếu một số khác không PHP tự động nhận biết đó là giá trị true, vậy $A = 4 là true; $B = 5 là true;
and | Toán tử và: true nếu hai toán hạng có giá trị true | ($A and $B) ≡ (4 and 5) ≡ (true and true) ≡ true |
or | Toán tử hoặc: true nếu một trong hai toán tử là true | ($A or $B) ≡ (4 or 5) ≡ (true or true) ≡ true |
&& | Toán tử và: true nếu hai toán hạng có giá trị true | ($A && $B) ≡ (4 && 5) ≡ (true && true) ≡ true |
|| | Toán tử hoặc: true nếu một trong hai toán tử là true | ($A || $B) ≡ (4 || 5) ≡ (true || true) ≡ true |
! | Toán NOT (phủ định): true nếu giá trị là false | !($A || $B) ≡ !(4 || 5) ≡ !(true || true) ≡ false |
Các toán tử gán
Các toán tử gán gồm: = += -= *= /= %=
= | Toán tử gán: Gán biểu thức bên phải của = vào biến bên trái | $C = ($A + $B) kết quả $C bằng 9 |
+= | Toán tử công thêm: Công thêm vào biến bên trái += giá trị bên phải | $C = 46; $C += ($A + $B) kết quả $C bằng 55 |
-= | Toán tử trừ bớt: Bớt đi giá trị biến bên trái của -= một lượng bằng biểu thức bên phải | $C = 60; $C -= ($A + $B) kết quả $C bằng 51 |
*= | Toán tử nhân với: $A *= $B tương đương với $A = $A * $B | $A *= $B kết quả $A bằng 20 |
/= | Toán tử chia cho: $A /= $B tương đương với $A = $A / $B | $A /= $B kết quả $A bằng 0.8 |
%= | Toán tử gán module: $A %= $B tương đương với $A = $A % $B | $A %= $B kết quả $A bằng 4 |
Các toán điều kiện
Sử dụng cặp ký hiệu ? và : để có loại toán tử này. Xét biểu thức sau:
$a ? $b : $c
thì giá trị của biểu thức là $b nếu $a là true; và là $c nếu $a là false.
Ví dụ:
<? $a = 10; $b = 15; $c = ($a < $b) ? $a : $b; //Tương đương với đoạn code sau if ($a < $b) $c = $a; else $c = $b; ?>Từ PHP7 có thêm toán tử ??: Toán tử này là sự kết hợp của ?: và hàm isset()
<? $c = $a ?? $b; //Tương đương với đoạn code sau $c = isset($a) ? $a : $b; ?>