Bài 4: Các toán tử
Để thực hiện việc tính toán các giá trị trong PHP, ta sử dụng toán tử (operator).
1. Gán (assignment)
Toán tử gán (dấu =) được sử dụng hết sức đơn giản. Ví dụ:
PHP Code:
$a = 1;
$b = 1;
$c = "cool";
?>
Sau ví dụ, biến $a và $b mang giá trị 1, $c mang giá trị "cool".
Để cho ngắn gọn, thay vì phải mất 2 dòng khai báo $a và $b, ta có thể gộp:
PHP Code:
$a = $b = 1;
// Hoặc: $b = $a = 1;
?>
Kết quả vẫn đúng như mong đợi.
2. Toán tử số học (arithmetic)
Các toán tử này gồm có: + (cộng – addition), – (trừ – subtraction), * (nhân – multiplication), / (chia – division) và % (tính modul – modulus).
Ví dụ:
PHP Code:
$a = 10;
$b = 5;
$c = $a + $b; // $c = 15
$d = $c – $a; // $d = 5
$e = $a / $b; // $e = 2
$f = $e * $b; // $f = 10
$g = $a % $e; // $g = 0
?>
Ngoài ra, để sau khi tính toán, giá trị $a bằng $a nhân 2 chẳng hạn, thay vì viết $a = $a * 2; ta có thể viết ngắn gọn: $a *= 2;
Tương tự, có thể viết $a += 10; $a -= 1; $a /= 3; $a %= 1; Cấu trúc này rất giống C và C++, nên nếu bạn đã biết qua 2 ngôn ngữ này thì ko có gì phải bỡ ngỡ.
3. Toán tử so sánh (comparision)
Toán tử so sánh gồm những toán tử sau:
== Mang giá trị TRUE khi 2 vế mang cùng giá trị
=== Mang giá trị TRUE khi 2 vế mang cùng giá trị VÀ cùng kiểu
!= Mang giá trị TRUE khi 2 vế ko cùng giá trị
<> Mang giá trị TRUE khi 2 vế ko cùng giá trị
!== Mang giá trị TRUE khi 2 vế ko cùng giá trị HOẶC ko cùng kiểu
< Mang giá trị TRUE khi vế trái mang giá trị nhỏ hơn vế phải
> Mang giá trị TRUE khi vế trái mang giá trị lớn hơn vế phải
<= Mang giá trị TRUE khi vế trái mang giá trị nhỏ hơn hoặc bằng vế phải
>= Mang giá trị TRUE khi vế trái mang giá trị lớn hơn hoặc bằng vế phải
Ta sẽ viết là $a == $b, $a !== $b, $a > $b…
Ví dụ:
PHP Code:
"123" == 123 // Đúng
"123" === 123 // Sai
"123" === "123" // Đúng
?>
Còn một loại toán tử so sánh nữa, được viết dưới dạng:
exp1 ? exp2 : exp3
Ví dụ:
PHP Code:
$a = ($b > 1) ? 2 : 1;
?>
Có thể giải thích như sau: Nếu $b > 1 thì $a mang giá trị 2, còn ko $a mang giá trị 1.
4. Toán tử logic (logical)
Gồm có:
&& Mang giá trị TRUE nếu cả 2 vế đều là TRUE
|| Mang giá trị TRUE nếu một trong 2 vế là TRUE
! Mang giá trị TRUE nếu vế có giá trị FALSE
xor Mang giá trị TRUE nếu có đúng 1 trong 2 vế là TRUE
Ta viết: $a && $b, $a xor $b…
Có thể dùng "and" thay cho && và "or" thay cho || cũng ko sao.
5. Toán tử bit (bitwise)
Toán tử để xử lý bit bao gồm:
& Phép And
| Phép Or
^ Phép Xor
~ Phép Not
<< Phép Shift Left
>> Phép Shift Right
Có thể viết $a >> 2, $b | $c,…
6. Toán tử dùng trong xâu
Để nối 2 xâu, ta dùng toán tử nối xâu (concatenation), biểu diễn bằng dấu chấm (.)
Ví dụ $a . $b, "Xâu" . "Một xâu khác"
Hiển nhiên có thể viết $a .= "Một xâu nào đó"
6. Toán tử dùng trong mảng
+ Gộp 2 mảng (union)
== So sánh bằng, mang giá trị TRUE nếu các phần tử của 2 mảng mang cùng khóa & giá trị (có thể thứ tự khác nhau)
!= hoặc <> Mang giá trị TRUE nếu các phần tử của 2 mảng ko cùng khóa & giá trị
=== So sánh bằng, mang giá trị TRUE nếu các phần tử của 2 mảng mang cùng khóa & giá trị & thứ tự giống nhau
!== Mang giá trị TRUE nếu 2 mảng ko giống hệt nhau (non-identical)
7. Các toán tử khác
Các toán tử khác có thể kể đến toán tử tự tăng (auto-increment) và tự giảm (auto-decrement), ký hiệu tương ứng là ++ và –.
Ví dụ $a++, $b–, –$c, ++$d
Một toán tử khác là toán tử @, cho phép PHP bỏ qua lỗi của một lần gọi hàm.
Ví dụ:
$test = @file('Bạn ko có quyền sờ đến file này');
identical(UDS)