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ụ
| Toán tử | Diễn tả | Ví dụ |
|---|---|---|
+ |
Phép cộng hai số | $A + $B : 34 + 38 = 72 |
- |
Phép trừ | $A - $B : 34 - 38 = -4 |
* |
Phép nhân | $A * $B : 34 * 38 = 1292 |
/ |
Phép chia | $A / $B :
34 / 38 = 0.89473684210526 |
% |
modulo : Phép chia lấy dư. Phần dư của phép chia hai số nguyên |
$A / $B :
34 % 38 = 34 |
++ |
Phép toán tăng thêm 1 vào biến | $A++ kết quả $A = 35 |
-- |
Phép toán giảm đi giá trị 1 | $B-- kết quả $B = 37 |
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 = 34;
$b = 38;
$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: 72
Kết quả phép trừ: -4
Kết quả phép nhân: 1292
Kết quả phép chia: 0.89473684210526
Phần dư phép chia: 34
Thêm một vào 34: 35
Giảm 35 đi 1: 34
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:
| Toán tử | Diễn tả | Ví dụ |
|---|---|---|
== |
So sánh bằng:true nếu hai toán hạng bằng nhau và false nếu khác |
$C == $D ≡ 26 == 37 ≡ 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 ≡ 26 != 37 ≡ 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 ≡ 26 > 37 ≡ false |
>= |
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 ≡ 26 >= 37 ≡ false |
< |
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 ≡ 26 < 37 ≡ true |
<= |
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 ≡ 26 <= 37 ≡ true |
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 = 26;
$b = 37;
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 = 26; b = 37):
a không bằng b
a không lớn hơn b
a nhỏ hơn b
a khác b
a không lớn hơn hoặc bằng
a 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 = 1 là true; $B = 48 là true;
| Toán tử | Diễn tả | Ví dụ |
|---|---|---|
and |
Toán tử và:true nếu hai toán hạng có giá trị true |
($A and $B) ≡ (1 and 48) ≡ (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) ≡ (1 or 48) ≡ (true or true) ≡
true
|
&& |
Toán tử và:true nếu hai toán hạng có giá trị true |
($A && $B) ≡ (1 && 48) ≡ (true && true) ≡
true
|
|| |
Toán tử hoặc:true nếu một trong hai toán tử là true |
($A || $B) ≡ (1 || 48) ≡ (true || true) ≡
true
|
! |
Toán NOT (phủ định):true nếu giá trị là false |
!($A || $B) ≡ !(1 || 48) ≡ !(true || true) ≡
false
|
Các toán tử gán
Các toán tử gán gồm:
=
+=
-=
*=
/=
%=
| Toán tử | Diễn tả | Ví dụ |
|---|---|---|
= |
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 49
|
+= |
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 = 55; $C += ($A + $B) kết quả $C bằng 104
|
-= |
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 = 8; $C -= ($A + $B) kết quả $C bằng -41
|
*= |
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 48
|
/= |
Toán tử chia cho: $A /= $B tương đương với $A = $A / $B |
$A /= $B kết quả $A bằng 0.020833333333333
|
%= |
Toán tử gán module: $A %= $B tương đương với $A = $A % $B |
$A %= $B kết quả $A bằng 1
|
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;
?>
