spl_object_hash匹配,对象不相同 [英] spl_object_hash matches, objects not identical
本文介绍了spl_object_hash匹配,对象不相同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在PHP中有两个对象变量,我们称它们为$a
和$b
.我认为它们都是同一个对象.而且,确实,对spl_object_hash()
的调用确认了这一点,但是它们各自具有不同的属性.
I have two object variables in PHP, let's call them $a
and $b
. I assume they're both the same object. And, indeed, a call to spl_object_hash()
confirms this, but they each have different properties.
当我跑步时:
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
这让我感到困惑.同一对象何时实际上是两个不同的对象?
This has got me baffled. When is the same object actually two different objects?
推荐答案
相同的对象和具有相同的属性之间是有区别的.
There is a difference between being the same object, and having the same properties.
$a = new stdClass("same", "parameters", 1337);
$b = new stdClass("same", "parameters", 1337);
var_dump($a == $b); //True
var_dump($a === $b); //False!
$b = $a;
var_dump($a === $b); //Now true.
这篇关于spl_object_hash匹配,对象不相同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文