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ử ++
và --
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
|