I have two object variables in PHP, let's call them $a
and $b
. I assume they're both the same object. And, indeed, a call to spl_object_hash()
confirms this, but they each have different properties.
When I run:
if(spl_object_hash($a) === spl_object_hash($b)){
echo "SAME HASH\n";
}else{
echo "DIFFERENT HASH\n";
}
if(print_r($a,TRUE) === print_r($b,TRUE)){
echo "SAME PRINT_R\n";
}else{
echo "DIFFERENT PRINT_R\n";
}
if($a === $b){
echo "IDENTICAL";
}else{
echo "NOT IDENTICAL";
}
I get:
SAME HASH
DIFFERENT PRINT_R
NOT IDENTICAL
This has got me baffled. When is the same object actually two different objects?