I have two object variables in PHP, call them $a and $b . I assume that they are both the same object. Indeed, the call to spl_object_hash() confirms this, but each of them has 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
It puzzled me. When on one object are there really two different objects?
Ross McFarlane
source share