PHP에 두 개의 개체 변수가 있습니다. $a
및 $b
으로 전화를 겁니다. 나는 그들이 둘 다 같은 대상이라고 생각한다. 실제로 실제로 spl_object_hash()
을 호출하면이 사실이 확인되지만 각기 다른 속성이 있습니다.spl_object_hash 일치하는 개체가 일치하지 않습니다.
나는 실행하면 :
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";
}
내가 얻을 :
SAME HASH
DIFFERENT PRINT_R
NOT IDENTICAL
은 당황 나를 가지고이. 같은 대상이 실제로 두 개의 다른 대상은 언제입니까?
여기에 두 해시의 'var_dump'가 있습니다. 문자열 (32) "0000000020d6b2fc000000007ad31222" 문자열 (32) "0000000020d6b2f0000000007ad31222" –
왜 해시가 동일한 지 궁금합니다. 이 물체를 특별하게 만드는 것이 있습니까? 문제가되는 객체의 정의와 상태를 추가 할 수 있습니까? – hakre
그리고 그 변수들은 어디에서 왔습니까? 우리가 그것을 재현 할 수 있을까요, 아니면 너무 복잡할까요? – HappyDeveloper