spl_object_hash匹配,对象不相同

Ros*_*ane 7 php oop

我在PHP两个Object变量,让我们称他们$a$b.我认为它们都是同一个对象.确实,这是一个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";
    }
Run Code Online (Sandbox Code Playgroud)

我明白了:

SAME HASH
DIFFERENT PRINT_R
NOT IDENTICAL
Run Code Online (Sandbox Code Playgroud)

这令我感到困惑.什么时候同一个物体实际上是两个不同的物体

Mad*_*iha 7

同一个对象和具有相同属性之间存在差异.

$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.
Run Code Online (Sandbox Code Playgroud)