Hướng dẫn php equals string - php bằng chuỗi

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.

Toán tử so sánh
Thí dụTênKết quả
$ a == $ bBình đẳngtrue Nếu $ a bằng $ b sau khi loại tung hứng. if $a is equal to $b after type juggling.
$ a === $ bGiố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! = $ bKhông công bằngtrue Nếu $ a không bằng $ b sau khi loại tung. if $a is not equal to $b after type juggling.
$ a $ bKhông công bằngtrue 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Ít hơn if $a is strictly less than $b.
true Nếu $ a hoàn toàn dưới $ b.$ a> $ bLớ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> = $ bLớn hơn hoặc bằng if $a is greater than or equal to $b.
$ a $ b$ a! == $ bKhô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.

$ a <$ b

Ít hơnstring is compared to a number or a numeric string then the string was converted to a number before performing the comparison. This can lead to surprising results as can be seen with the following example:

bool(false)
bool(true)
bool(true)
bool(true)
a
3

bool(false)
bool(true)
bool(true)
bool(true)
a
4

bool(false)
bool(true)
bool(true)
bool(true)
a
5

true Nếu $ a hoàn toàn dưới $ b.

bool(true)
bool(true)
bool(true)
bool(true)
0

$ a> $ b

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)
a
7

bool(false)
bool(true)
bool(true)
bool(true)
a
8

Lớn hơn

true Nếu $ a hoàn toàn lớn hơn $ b.
$ aÍt hơn hoặc bằngKết quả
true nếu $ a nhỏ hơn hoặc bằng $ b. or string $ a> = $ b Lớn hơn hoặc bằng
bool(false)
bool(true)
bool(true)
bool(true)
a
9
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, true0 < 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)
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ị.
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ị.
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)
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ị.
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ị.

true2

Cảnh báo

true3

$ a <$ b

Ít hơn

true Nếu $ a hoàn toàn dưới $ b.floats are represented internally, you should not test two floats for equality.

$ 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)
a
1 and
bool(false)
bool(true)
bool(true)
bool(true)
a
2 comparisons rather than true6 and true7 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

true0

Lớn hơn hoặc bằngexpr2 if expr1 evaluates to true, and expr3 if expr1 evaluates to true0.

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 true6 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)
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ị.

Ví dụ #4 Hành vi ternary không rõ ràng

true7

true8

true9

Ghi chú::

Chuỗi các yếu tố ngắn (true0), 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

true1

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

true2

Biểu thức true3 đánh giá là expr2 nếu expr1 là

bool(false)
bool(true)
bool(true)
bool(true)
a
9 và expr1 khác.expr2 if expr1 is
bool(false)
bool(true)
bool(true)
bool(true)
a
9
, 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ố true5 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 statement true5 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 (true0), 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.

true6

Ghi chú::

Ví dụ #5 Chuỗi ngắn hạn

Nhà điều hành NULL kết hợp

true7

true8

true9

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

true0

true1

true2

Biểu thức true3 đá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ố true5 trong chức năng hoàn trả sẽ không hoạt động và cảnh báo được đưa ra.

true4

true5

true6

true2

Cá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:

true8

true9

true0

true1

true2

Ví 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:

true3

true4

true5

true6

Ví dụ #7 Nhà điều hành NULL NULL kết hợp

Crazy888s tại hotmail dot com

true7

true8

true9

true0

true2

12 năm trước

Niall tại Maranelda Dot org ¶

true2

true3

true4

true5

true6

true2

4 năm trước

true3

true8

true9

true2

Adam tại Caucho Dot Com ¶

Niall tại Maranelda Dot org ¶

true1

4 năm trước

true3

true2

true3

true4

true5

Adam tại Caucho Dot Com ¶

true7

true8

true9

true0

true2

16 năm trước

rshawiii tại yahoo dot com ¶

true2

true3

true4

true5

true2

Giám mục ¶

15 năm trước

true7

true8

true9

bool(false)
bool(true)
bool(true)
bool(true)
a
00

true2