Khi sử dụng toán tử so sánh [==
], các biến đối tượng được so sánh theo cách đơn giản, cụ thể là: hai trường hợp đối tượng bằng nhau nếu chúng có cùng thuộc tính và giá trị [giá trị được so sánh với ==
] và là các trường hợp của cùng một lớp.
Khi sử dụng toán tử nhận dạng [===
], các biến đối tượng là giống hệt nhau khi và chỉ khi chúng đề cập đến cùng một thể hiện của cùng một lớp.
Một ví dụ sẽ làm rõ các quy tắc này.
Ví dụ #1 Ví dụ về so sánh đối tượng
Ví dụ trên sẽ xuất ra:
Two instances of the same class o1 == o2 : TRUE o1 != o2 : FALSE o1 === o2 : FALSE o1 !== o2 : TRUE Two references to the same instance o1 == o2 : TRUE o1 != o2 : FALSE o1 === o2 : TRUE o1 !== o2 : FALSE Instances of two different classes o1 == o2 : FALSE o1 != o2 : TRUE o1 === o2 : FALSE o1 !== o2 : TRUE
Ghi chú::
Các tiện ích mở rộng có thể xác định các quy tắc riêng để so sánh đối tượng của họ [
==
].
jazfresh tại hotmail.com ¶ ¶
15 năm trước
Note that when comparing object attributes, the comparison is recursive [at least, it is with PHP 5.2]. That is, if $a->x contains an object then that will be compared with $b->x in the same manner. Be aware that this can lead to recursion errors:
Results in:
PHP Fatal error: Nesting level too deep - recursive dependency? in test.php on line 11
Ẩn danh ¶ ¶
12 năm trước
Comparison using operators should be documented. Between two objects, at least in PHP5.3, the comparison operation stops and returns at the first unequal property found.
==
0
==
1
==
2rnealxp tại yahoo dot com ¶ ¶
2 năm trước
==
3
rnealxp tại yahoo dot com ¶ ¶
2 năm trước
==
4
==
5
==
6
==
75 năm trước ¶
Nhuhoai
==
8
==
9
==
0
==
18 năm trước ¶
WBCarts tại Juno Dot Com ¶
==
2
==
3
==
4
==
5
==
614 năm trước ¶
15 năm trước
==
7
==
8
==
1Ẩn danh ¶ ¶
WBCarts tại Juno Dot Com ¶
===
0
===
1
===
2
==
114 năm trước ¶
15 năm trước
===
4
===
5
===
6
===
7
===
8
===
9
==
1Ẩn danh ¶ ¶
WBCarts tại Juno Dot Com ¶