PHPで2つのオブジェクト変数がありますが、$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
これはバッフル付き私を持っています。同じオブジェクトが実際には2つの異なるオブジェクトはいつですか?
ここには、両方のハッシュの 'var_dump'があります。 文字列(32) "0000000020d6b2fc000000007ad31222" 文字列(00)0000000020d6b2f0000000007ad31222 –
なぜ同じハッシュも同じではないかと思います。これらのオブジェクトを特別にするものはありますか?問題のオブジェクトの定義とその状態を追加できますか? – hakre
これらの変数はどこから来たのですか?それを再現できますか、それとも複雑すぎるのでしょうか? – HappyDeveloper