Comparing Object adalah melakukan perbandingan dua object atau lebih, jika kita menggunakan operator perbandingan (==), variable object dibandingkan dengan cara yang sederhana. Contoh Jika dua object memiliki atribut dan nilai – nilai yang sama maka nilai dibandingkan dengan (==).
Bila menggunakan operator identitas (===), variable Object harus sama persis jika dan hanya jika merea mengacu pada hal yang sama dari class yang sama.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function bool2str($bool) | |
{ | |
if ($bool === false) { | |
return 'FALSE'; | |
} else { | |
return 'TRUE'; | |
} | |
} | |
function compareObjects(&$o1, &$o2) | |
{ | |
echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "\n"; | |
echo 'o1 != o2 : ' . bool2str($o1 != $o2) . "\n"; | |
echo 'o1 === o2 : ' . bool2str($o1 === $o2) . "\n"; | |
echo 'o1 !== o2 : ' . bool2str($o1 !== $o2) . "\n"; | |
} | |
class Flag | |
{ | |
public $flag; | |
function Flag($flag = true) { | |
$this->flag = $flag; | |
} | |
} | |
class OtherFlag | |
{ | |
public $flag; | |
function OtherFlag($flag = true) { | |
$this->flag = $flag; | |
} | |
} | |
$o = new Flag(); | |
$p = new Flag(); | |
$q = $o; | |
$r = new OtherFlag(); | |
echo "Two instances of the same class\n"; | |
compareObjects($o, $p); | |
echo "\nTwo references to the same instance\n"; | |
compareObjects($o, $q); | |
echo "\nInstances of two different classes\n"; | |
compareObjects($o, $r); | |
?> | |
// Result | |
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 |