<?php
class?Car?{
????public?$name?=?'car';
????
????/*public?function?__clone()?{
????????$obj?=?new?Car();
????????$obj->name?=?$this->name;
????}
????*/
}
$a?=?new?Car();
$c?=?new?Car();
$a->name?=?'new?car';
$b?=?clone?$a;
if?($a?==?$b)?echo?'==';???//true?該行可輸出
if?($a?===?$b)?echo?'===';?//$b?克隆的?$a?為啥他兩個還不===?
if?($a?===?$c)?echo?'===';?//這個我更理解不了了?應(yīng)該這里會輸出===吧大神們啊 這章真累 指點指點吧 謝謝了!
2 回答
已采納

qq_青棗工作室_0
TA貢獻446條經(jīng)驗 獲得超754個贊
==和===都是表示相等?。。〉?==要求更嚴格。
$a跟$b是兩個對象,沒有相同的引用,不會輸出===
$a跟$c也是沒有相同的引用,不會輸出===。而且$c跟$a的屬性name還不相同啦,就更加不相等啊!
附錄:
在 PHP 4 中,對象比較的規(guī)則十分簡單:如果兩個對象是同一個類的實例,且它們有相同的屬性和值,則這兩個對象相等。類似的規(guī)則還適用與用全等符(===)對兩個對象的比較。
PHP 5 中的對象比較要比 PHP 4 中復(fù)雜,所期望的結(jié)果更符合一個面向?qū)ο笳Z言。
當(dāng)使用比較運算符(==)比較兩個對象變量時,比較的原則是:如果兩個對象的屬性和屬性值 都相等,而且兩個對象是同一個類的實例,那么這兩個對象變量相等。
而如果使用全等運算符(===),這兩個對象變量一定要指向某個類的同一個實例(即同一個對象)
- 2 回答
- 0 關(guān)注
- 1463 瀏覽
添加回答
舉報
0/150
提交
取消