Mam dwie zmienne obiektowe w PHP, nazwijmy je $a
i $b
. Zakładam, że oba są tym samym obiektem. I rzeczywiście, połączenie z spl_object_hash()
potwierdza to, ale każdy ma inne właściwości.mecze spl_object_hash, obiekty nie identyczne
Kiedy biegnę:
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";
}
uzyskać:
SAME HASH
DIFFERENT PRINT_R
NOT IDENTICAL
To ma mnie zaskoczony. Kiedy ten sam obiekt to właściwie dwa różne obiekty?
Oto 'var_dump' obu skrótów. string (32) "0000000020d6b2fc000000007ad31222" string (32) "0000000020d6b2f0000000007ad31222" –
Zastanawiam się również, dlaczego skróty są identyczne. Czy jest coś, co czyni te przedmioty wyjątkowymi? Czy możesz dodać definicję przedmiotowych obiektów i ich stanów? – hakre
Skąd się wzięły te zmienne? Czy możemy to odtworzyć, czy byłoby to zbyt skomplikowane? – HappyDeveloper