Các toán tử so sánh, như tên của chúng ngụ ý, cho phép bạn so sánh hai giá trị. Bạn cũng có thể quan tâm đến việc xem các bảng so sánh loại, vì chúng hiển thị các ví dụ về các so sánh liên quan đến loại khác nhau. $ a $ bThí dụTênKết quả $ a == $ b Bình đẳng true
Nếu $ a bằng $ b sau khi loại tung hứng. if $a is equal to $b after type juggling.
$ a === $ b Giống hệt nhau true
nếu $ a bằng $ b và chúng cùng loại. if $a is equal to $b, and they are of the same type.
$ a! = $ b Không công bằng true
Nếu $ a không bằng $ b sau khi loại tung. if $a is not equal to $b after type juggling.
$ a $ b Không công bằng true
Nếu $ a không bằng $ b sau khi loại tung. if $a is not equal to $b after type juggling.
$ a $ b $ a! == $ b Không định nghĩa if $a is not equal to $b, or they are not of the same type.
true
Nếu $ A không bằng $ B hoặc chúng không thuộc cùng loại.$ a $ b Lớn hơn if $a is strictly greater than $b.
true
Nếu $ a hoàn toàn lớn hơn $ b.$ a Ít hơn hoặc bằng if $a is less than or equal to $b.
true
nếu $ a nhỏ hơn hoặc bằng $ b.$ a> = $ b Lớn hơn hoặc bằng if $a is greater than or equal to $b.
$ a $ b $ a! == $ b Không định nghĩaint less than, equal to, or greater than zero when $a is less than, equal to, or greater than $b, respectively.
true
Nếu $ A không bằng $ B hoặc chúng không thuộc cùng loại.bool[false]
bool[true]
bool[true]
bool[true]
a
bool[false]
bool[true]
bool[true]
bool[true]
a
6
bool[false] bool[true] bool[true] bool[true] a7
bool[false] bool[true] bool[true] bool[true] a8
Lớn hơn
true
Nếu $ a hoàn toàn lớn hơn $ b.
true nếu $ a nhỏ hơn hoặc bằng $ b. or string
| $ a> = $ b | Lớn hơn hoặc bằngbool[false] bool[true] bool[true] bool[true] a9 to "", numerical or lexical comparison |
true nếu $ a lớn hơn hoặc bằng $ b. or null
| Tàu không gian | Một int nhỏ hơn, bằng hoặc lớn hơn 0 khi $ a tương ứng là nhỏ hơn, hoặc lớn hơn $ b.bool, true 0 < true
|
Nếu cả hai toán hạng là chuỗi số, hoặc một toán hạng là một số và chuỗi còn lại là một chuỗi số, thì so sánh được thực hiện bằng số. Các quy tắc này cũng áp dụng cho câu lệnh Switch. Việc chuyển đổi loại không diễn ra khi so sánh là bool[false] bool[true] bool[true] bool[true] a1 hoặc bool[false] bool[true] bool[true] bool[true] a2 vì điều này liên quan đến việc so sánh loại cũng như giá trị. | Nếu cả hai toán hạng là chuỗi số, hoặc một toán hạng là một số và chuỗi còn lại là một chuỗi số, thì so sánh được thực hiện bằng số. Các quy tắc này cũng áp dụng cho câu lệnh Switch. Việc chuyển đổi loại không diễn ra khi so sánh là bool[false] bool[true] bool[true] bool[true] a1 hoặc bool[false] bool[true] bool[true] bool[true] a2 vì điều này liên quan đến việc so sánh loại cũng như giá trị. | Cảnh báo |
Trước Php 8.0.0, nếu một chuỗi được so sánh với một số hoặc chuỗi số thì chuỗi được chuyển đổi thành một số trước khi thực hiện so sánh. Điều này có thể dẫn đến kết quả đáng ngạc nhiên như có thể thấy với ví dụ sau:, resource, int or float | Trước Php 8.0.0, nếu một chuỗi được so sánh với một số hoặc chuỗi số thì chuỗi được chuyển đổi thành một số trước khi thực hiện so sánh. Điều này có thể dẫn đến kết quả đáng ngạc nhiên như có thể thấy với ví dụ sau:, resource, int or float | Đầu ra của ví dụ trên trong Php 7: |
Đầu ra của ví dụ trên trong Php 8: | Đầu ra của ví dụ trên trong Php 8: | Đối với các loại khác nhau, so sánh được thực hiện theo bảng sau [theo thứ tự]. |
Nếu cả hai toán hạng là chuỗi số, hoặc một toán hạng là một số và chuỗi còn lại là một chuỗi số, thì so sánh được thực hiện bằng số. Các quy tắc này cũng áp dụng cho câu lệnh Switch. Việc chuyển đổi loại không diễn ra khi so sánh là bool[false] bool[true] bool[true] bool[true] a1 hoặc bool[false] bool[true] bool[true] bool[true] a2 vì điều này liên quan đến việc so sánh loại cũng như giá trị. | Tàu không gian | Một int nhỏ hơn, bằng hoặc lớn hơn 0 khi $ a tương ứng là nhỏ hơn, hoặc lớn hơn $ b. is always greater |
Đầu ra của ví dụ trên trong Php 8: | Tàu không gian | Một int nhỏ hơn, bằng hoặc lớn hơn 0 khi $ a tương ứng là nhỏ hơn, hoặc lớn hơn $ b. is always greater |
Nếu cả hai toán hạng là chuỗi số, hoặc một toán hạng là một số và chuỗi còn lại là một chuỗi số, thì so sánh được thực hiện bằng số. Các quy tắc này cũng áp dụng cho câu lệnh Switch. Việc chuyển đổi loại không diễn ra khi so sánh là bool[false]
bool[true]
bool[true]
bool[true]
a
1 hoặc bool[false]
bool[true]
bool[true]
bool[true]
a
2 vì điều này liên quan đến việc so sánh loại cũng như giá trị.
true
2
Cảnh báo
true
3
$ a $ bfloat for more information.
Lớn hơn: Be aware that PHP's type juggling is not always obvious when comparing values of different types, particularly comparing ints to bools or ints to strings. It is therefore generally advisable to use
bool[false] bool[true] bool[true] bool[true] a1 andbool[false] bool[true] bool[true] bool[true] a2 comparisons rather thantrue
6 andtrue
7 in most cases.
true
Nếu $ a hoàn toàn lớn hơn $ b.
$ a
Ít hơn hoặc bằng
true
nếu $ a nhỏ hơn hoặc bằng $ b.
$ a> = $ b
true
0
Lớn hơn hoặc bằngexpr2 if
expr1 evaluates to true
, and expr3 if expr1 evaluates to true
0.
true
nếu $ a lớn hơn hoặc bằng $ b.expr1 if expr1 evaluates to true
, and expr3 otherwise. expr1 is only evaluated once in this case.
Tàu không gian: Please note that the ternary operator is an expression, and that it doesn't evaluate to a variable, but to the result of an expression. This is important to know if you want to return a variable by reference. The statement
true
6 in a return-by-reference function will therefore not work and a warning is issued.
Một int nhỏ hơn, bằng hoặc lớn hơn 0 khi $ a tương ứng là nhỏ hơn, hoặc lớn hơn $ b.:
Nếu cả hai toán hạng là chuỗi số, hoặc một toán hạng là một số và chuỗi còn lại là một chuỗi số, thì so sánh được thực hiện bằng số. Các quy tắc này cũng áp dụng cho câu lệnh Switch. Việc chuyển đổi loại không diễn ra khi so sánh là
bool[false] bool[true] bool[true] bool[true] a1 hoặcbool[false] bool[true] bool[true] bool[true] a2 vì điều này liên quan đến việc so sánh loại cũng như giá trị.Ví dụ #4 Hành vi ternary không rõ ràng
true
7
true
8true
9
Ghi chú::
Chuỗi các yếu tố ngắn [
true
0], tuy nhiên, là ổn định và hành xử hợp lý. Nó sẽ đánh giá đối với đối số đầu tiên đánh giá đến giá trị không giả mạo. Lưu ý rằng các giá trị không xác định vẫn sẽ đưa ra một cảnh báo.Ví dụ #5 Chuỗi ngắn hạn
true
1
Nhà điều hành NULL kết hợp
Một nhà điều hành tốc ký hữu ích khác là "??" [hoặc null kết hợp lại] Nhà điều hành.
Ví dụ #6 gán giá trị mặc định
true
2
Biểu thức true
3 đánh giá là expr2 nếu expr1 là
bool[false] bool[true] bool[true] bool[true] a9 và expr1 khác.expr2 if expr1 is
bool[false] bool[true] bool[true] bool[true] a9, and expr1 otherwise.
Cụ thể, toán tử này không phát ra thông báo hoặc cảnh báo nếu giá trị phụ bên trái không tồn tại, giống như isset []. Điều này đặc biệt hữu ích trên các phím mảng.isset[]. This is especially useful on array keys.
Lưu ý: Xin lưu ý rằng toán tử kết hợp null là một biểu thức và nó không đánh giá thành một biến, mà là kết quả của một biểu thức. Điều này rất quan trọng để biết nếu bạn muốn trả về một biến bằng cách tham khảo. Do đó, tuyên bố
true
5 trong chức năng hoàn trả sẽ không hoạt động và cảnh báo được đưa ra.: Please note that the null coalescing operator is an expression, and that it doesn't evaluate to a variable, but to the result of an expression. This is important to know if you want to return a variable by reference. The statementtrue
5 in a return-by-reference function will therefore not work and a warning is issued.
Ghi chú::
Chuỗi các yếu tố ngắn [
true
0], tuy nhiên, là ổn định và hành xử hợp lý. Nó sẽ đánh giá đối với đối số đầu tiên đánh giá đến giá trị không giả mạo. Lưu ý rằng các giá trị không xác định vẫn sẽ đưa ra một cảnh báo.
true
6
Ghi chú::
Ví dụ #5 Chuỗi ngắn hạn
Nhà điều hành NULL kết hợp
true
7
true
8true
9
Một nhà điều hành tốc ký hữu ích khác là "??" [hoặc null kết hợp lại] Nhà điều hành. ¶
Ví dụ #6 gán giá trị mặc định
true
0
true
1
true
2 Biểu thức true
3 đánh giá là expr2 nếu expr1 là bool[false]
bool[true]
bool[true]
bool[true]
a
9 và expr1 khác. ¶
Cụ thể, toán tử này không phát ra thông báo hoặc cảnh báo nếu giá trị phụ bên trái không tồn tại, giống như isset []. Điều này đặc biệt hữu ích trên các phím mảng.
Lưu ý: Xin lưu ý rằng toán tử kết hợp null là một biểu thức và nó không đánh giá thành một biến, mà là kết quả của một biểu thức. Điều này rất quan trọng để biết nếu bạn muốn trả về một biến bằng cách tham khảo. Do đó, tuyên bố true
5 trong chức năng hoàn trả sẽ không hoạt động và cảnh báo được đưa ra.
true
4
true
5
true
6
true
2Các nhà điều hành NULL kết hợp có quyền ưu tiên thấp. Điều đó có nghĩa là nếu trộn nó với các toán tử khác [như kết hợp chuỗi hoặc toán tử số học] có thể sẽ được yêu cầu. ¶
Xin lưu ý rằng người vận hành Null Coalescing cho phép làm tổ đơn giản:
true
8
true
9
true
0
true
1
true
2Ví dụ #7 Nhà điều hành NULL NULL kết hợp ¶
Xin lưu ý rằng người vận hành Null Coalescing cho phép làm tổ đơn giản:
true
3
true
4
true
5
true
6Ví dụ #7 Nhà điều hành NULL NULL kết hợp ¶
Crazy888s tại hotmail dot com
true
7
true
8
true
9
true
0
true
212 năm trước ¶
Niall tại Maranelda Dot org ¶
true
2
true
3
true
4
true
5
true
6
true
24 năm trước ¶
true
3
true
8
true
9
true
2Adam tại Caucho Dot Com ¶ ¶
Niall tại Maranelda Dot org ¶
true
1
4 năm trước ¶
true
3
true
2
true
3
true
4
true
5
Adam tại Caucho Dot Com ¶
true
7
true
8
true
9
true
0
true
216 năm trước ¶
rshawiii tại yahoo dot com ¶
true
2
true
3
true
4
true
5
true
2Giám mục ¶ ¶
15 năm trước
true
7
true
8
true
9
bool[false] bool[true] bool[true] bool[true] a00
true
2