Toán tử

Toán tử số học

Toán tử số học + (cộng), - (trừ), * (nhân), % lấy phần dư tương tự như ngôn ngữ C. Toán tử chia sẽ chia hai số thành dạng số thực. Nếu muốn chia số nguyên hãy sử dụng hàm intdiv().
Toán tử ++-- cũng tương tự như C.
Toán tử ** là toán tữ lũy thừa được giới thiệu trong PHP 5.6

1
2
3
4
5
6
7
<?php
echo 5 * 2; // -> 10
echo 5 / 2; // -> 2.5
echo 5 ** 3; // -> 125
$a = 10;
$a++;
echo $a; // -> 11

Toán tử gán

Toán tử gán tương tự như C. Toán tử gán gộp +=, -=, *=, /=, %= cũng tương tự như C. Ngoài ra còn có toán tử gán tham chiếu &.

1
2
3
4
5
6
<?php
$b = 10;
$a = &b; // a tham chiếu tới b

$b = 12;
echo $a; // -> 12

Toán tử với bit

Toán tử với bit trong PHP tương tự như C gồm có toán tử & (and bit), | (or bit), ^ (xor bit), ~ (not bit), << (Shift left bit), >> (Shift right bit).

1
2
<?php
echo 0b1001 & 0b1101; // -> 0b1001 <=> 9

Toán tử so sánh

Các toán tử so sánh trong PHP tương tự như C gồm có:

Toán tử Ý nghĩa
== So sánh bằng
!= So sánh khác nhau
> Lớn hơn
>= Lớn hơn hoặc bằng
< Nhỏ hơn
<= Nhỏ hơn hoặc bằng

Ngoài ra PHP còn có các toán tử khác như sau:

Toán tử Ý nghĩa
<> So sánh khác tương tự như !=
=== So sánh bằng nhau và phải cùng kiểu dữ liệu
!== Kết quả ngược lại với toán tử ===
$a <=> $b $a <=> $b trả về -1, 0 hoặc 1 tương ứng với $a nhỏ hơn, bằng hoặc lớn hơn $b (từ phiên bản PHP 7.0)

Lưu ý khi so sánh hai string với nhau sử dụng toán tử so sánh thì chúng sẽ chuyển sang kiểu number hoặc vẫn có thể so sánh hai string thông qua so sánh danh sách các ký tự của chúng.

1
2
3
<?php
var_dump("5" > "10"); // -> false
var_dump("10" == "1e1"); // 10 == 10 -> true

Còn khi chỉ muốn so sánh string với nhau (bỏ qua chuyển sang kiểu number) thì chúng ta có thể sử dụng hàm strcmp. Hàm này sẽ so sánh từng ký tự của hai string với nhau. Sẽ trả về số nhở hơn 0 nếu str1 < str2, trả về số lớn hơn 0 nếu str1 > str2 và trả về 0 nếu hai string giống nhau.

1
2
<?php
echo strcmp("5", "10") ? 'true' : 'false'; // -> true

Khi so sánh hai mảng với nhau thì sẽ so sánh số lượng phần tử của mảng

1
2
<?php
var_dump([1,2,3,4,5,6] > [100]); // true

Toán tử logic

Toán tử logic giống với C. Được mô tả như sau:

Toán tử Giải thích
&& Toán tử AND logic
and Toán tử AND logic (giống như &&)
|| Toán tử OR logc
or Toán tử OR logc (giống như `
! Toán tử NOT logic
1
2
3
<?php
// hàm foo() sẽ không được gọi do bị đoản mạnh
$a = (false && foo());

Toán tử điều kiện (Conditional Operator)

Toán tử điều kiện ($a ? $b : $c) tương tự như ngôn ngữ C.

1
2
3
<?php
$a = 5;
$b = $a > 10 ? $a : 10; // -> 10