您好,登錄后才能下訂單哦!
對象比較:
相等:當(dāng)使用比較運算符(==)比較兩個對象變量時,比較的原則是:
1.如果兩個對象的屬性和屬性值 都相等,
2.而且兩個對象是同一個類的實例(instance of),那么這兩個對象變量相等。
全等:而如果使用全等運算符(===),這兩個對象變量一定要指向某個類的同一個實例(即同一個對象,說明對象標(biāo)志符都完全一樣)。
class Sheep { public $name; protected $food; public function __construct(string $name, string $food) { $this->name = $name; $this->food = $food; } public function __toString() { return serialize($this); } public function __clone() { echo '對象被克隆' . PHP_EOL; } } $sheep1 = new Sheep('喜洋洋', '肉');//PHP Recoverable fatal error: Object of class Sheep could not be converted to string echo $sheep1; /** * * * 相等:當(dāng)使用比較運算符(==)比較兩個對象變量時,比較的原則是:如果兩個對象的屬性和屬性值 都相等, * 而且兩個對象是同一個類的實例,那么這兩個對象變量相等。 * * 全等:而如果使用全等運算符(===),這兩個對象變量一定要指向某個類的同一個實例(即同一個對象)。 * */ $sheep1 = new Sheep('喜洋洋', '肉'); $sheep2 = new Sheep('喜洋洋', '肉'); $sheep3 = clone $sheep1; //分析:三個對象都是Sheep類的實例,且對象的屬性和值都完全一樣 if ($sheep1 == $sheep2 && $sheep2 == $sheep3) { echo '$sheep1 == $sheep2 == $sheep3' . PHP_EOL; } $sheep4 = $sheep1; //對象的引用傳遞(傳遞的是對象標(biāo)識符) if ($sheep4 === $sheep1) { echo '$sheep4 === $sheep1' . PHP_EOL; }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。