Tengo dos variables de objeto en PHP, llamémosles $a
y $b
. Supongo que ambos son el mismo objeto. Y, de hecho, una llamada al spl_object_hash()
confirma esto, pero cada uno tiene diferentes propiedades.spl_object_hash partidos, los objetos no idéntico
cuando corro:
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";
}
me sale:
SAME HASH
DIFFERENT PRINT_R
NOT IDENTICAL
Esto me tiene desconcertado. ¿Cuándo es el mismo objeto en realidad dos objetos diferentes?
Aquí está el 'var_dump' de ambos hashes. cadena (32) "0000000020d6b2fc000000007ad31222" cadena (32) "0000000020d6b2f0000000007ad31222" –
Me pregunto por qué los hash son idénticos. ¿Hay algo que haga que estos objetos sean especiales? ¿Puedes agregar la definición de los objetos en cuestión y sus estados? – hakre
¿Y de dónde provienen esas variables? ¿Podemos reproducirlo, o sería demasiado complicado? – HappyDeveloper