Các loại toán tử trong PHP
- Toán tử số học.
- Toán tử gán.
- Toán tử trên bit.
- Toán tử so sánh.
- Toán tử tăng, giảm.
- Toán tử logic.
- Toán tử trên chuỗi.
- Toán tử trên mảng.
Toán tử số học
Toán tử số học gồm có những toán tử cơ bản như sau: +
, -
, *
, /
, %
.
Ví dụ |
Chú thích |
|
Lấy đối của |
|
Tổng của |
|
Hiệu của |
|
Tích của |
|
Phần nguyên của phép |
|
Dư của phép |
Có vài điểm chú ý của các toán tử số học như sau:
- Phép chia, khi dùng toán tử
/
thì kết quả là một số kiểufloat
, trừ khi cả 2 toán hạng đều là kiểuint
hoặc giá trị của 2 số hạng bằng nhau thì sẽ cho kết quả là kiểuint
. - Phép lấy dư
%
là các toán hạng phải được chuyển thành kiểuint
trước khi thực hiện phép lấy dư, một điểm lưu ý nữa là dấu của kết quả phép lấy dư sẽ phụ thuộc vào dấu của số bị chia.
Ví dụ:
$x = -10; $y = 6; echo $x % $y; // = -4
Toán tử gán
Toán tử so sánh có thể so sánh các số, kí tự, chuỗi với nhau và trả về TRUE hoặc FALSE.
Toán tử |
Ví dụ |
|
|
|
|
|
|
|
|
|
|
|
|
Ví dụ:
$x = 10; $x *= 6; echo $x ; // 60
Trong PHP cũng có phép gán bằng tham chiếu với cú pháp $var = &$othervar;
. Khi sử dụng phép gán tham chiếu thì cả hai biến đều trỏ đến chung một dữ liệu và thao tác cùng trên dữ liệu đó.
$a = 3; $b = &$a; // $b tham chiếu đến $a khi đó $b = 3 $a = 4; // thay đổi $a = 4 vì thế nên $b = 4
Toán tử trên bit
Toán tử trên bit, cho phép thao tác trên từng bit của một số nguyên.
Ví dụ |
Chú thích |
|
And |
|
Or |
|
Xor |
|
Not |
|
Shift left |
|
Shift right |
Toán tử so sánh
Toán tử so sánh có thể so sánh các số, kí tự, chuỗi với nhau và trả về TRUE
hoặc FALSE
.
Ví dụ |
Chú thích |
|
Trả về |
|
Trả về |
|
Trả về |
|
Trả về |
|
Trả về |
|
Trả về |
|
Trả về |
|
Trả về |
|
Trả về |
|
Trả về |
Ví dụ:
$a = 50; $b = "50"; var_dump($x === $y); // false, bởi vì hai toán hạng không cùng kiểu dữ liệu
echo ((true ? 'true' : false) ? 't' : 'f'); kết quả là: t
Toán tử tăng, giảm
Trong PHP, toán tử tăng/giảm chỉ được sử dụng đối với số và chuỗi.
Ví dụ |
Chú thích |
|
Cộng |
|
Trả về |
|
Lấy |
|
Trả về |
Xét ví dụ sau đây, trong PHP.
$a = ‘Z’;
$a ++;
Sẽ trả về kết quả là $a = ‘AA’
.
Còn đối với C/C++,
a = ‘Z’;
a ++;
Kết quả là 91
, bởi vì trong bảng mã ASCII kí tự Z
có mã là 90
và a++
nên a = 91
.
Để hiểu rõ hơn theo dõi ví dụ dưới đây.
<?php echo '== Characters =='; $s = 'W'; for ($n=0; $n<5; $n++) { echo ++$s . ", "; } echo '== Digits =='; $d = 'A8'; for ($n=0; $n<5; $n++) { echo ++$d . ", "; } echo '== Characters and Digits ==' $t = 'A08'; for ($n=0; $n<5; $n++) { echo ++$t . ", " ; } ?>
Kết quả:
== Characters == X, Y, Z, AA, AB == Digits == A9, B0, B1, B2, B3 == Characters and Digits == A09, A10, A11, A12, A13
Toán tử logic
Toán tử |
Ví dụ |
Chú thích |
|
|
Trả về |
|
|
Trả về |
|
|
Trả về |
|
|
Trả về |
|
|
Trả về |
|
|
Trả về đúng khi 1 trong hai đúng |
Như thấy ở trên thì thấy toán tử or
giống với ||
và toán tử and
giống với &&
, nhưng có điểm đặc biệt là độ ưu tiên của chúng khác nhau, &&
có độ ưu tiên cao hơn so với and
, ||
có độ ưu tiên cao hơn so với or
.
Toán tử trên chuỗi
Liên quan đến chuỗi kí tự thì có hai toán tử sau đây và cả hai toán tử đều là dùng để nối chuỗi lại.
Toán tử |
Ví dụ |
Chú thích |
|
|
Nối hai chuỗi |
|
|
Nối chuỗi |
Ví dụ:
$b = "Hello "; $b .= "Stdio!"; echo $b; // “Hello STDIO Training” , nó giống như $b = $b . “STDIO Training!”;
Toán tử trên mảng
Toán tử |
Ví dụ |
Chú thích |
|
|
Hợp |
|
|
Trả về |
|
|
Trả về |
|
|
Trả về |
|
|
Trả về |
|
|
Trả về |
Ví dụ:
<?php $a = array("a" => "La Kiến Vinh", "b" => "Vũ Quang Huy"); $b = array("Ryan", "Rye", "Dat"); $c = $a + $b; echo "Union \$a and \$b: \n"; var_dump($c); $c = $b + $a; echo "Union of \$b and \$a: \n"; var_dump($c); $a += $b; // $a = $a + $b echo "Union \$a += \$b: \n"; var_dump($a); echo “ === Operator === \n” . var_dump($a === $b); ?>
Kết quả:
Union $a and $b: array(3) { ["a"]=> string(5) "La Kiến Vinh" ["b"]=> string(5) "Vũ Quang Huy" ["c"]=> string(3) "Dat" } Union $b and $a: array(3) { ["a"]=> string(4) "Ryan" ["b"]=> string(3) "Rye" ["c"]=> string(3) "Dat" } Union $a += $b: array(3) { 'a' => string(5) "La Kiến Vinh" 'b' => string(5) "Vũ Quang Huy" 'c' => string(3) "Dat" } === Operator === Bool(false)
Tham khảo
http://php.net/manual/en/language.operators.php.