spl_object_hash()在这种情况下,我正在了解并且不太了解幕后的内容:
$obj = new stdClass;
$id1 = spl_object_hash($obj);
$id2 = spl_object_hash(new stdClass);
echo $id1.'<br>'.$id2;
Run Code Online (Sandbox Code Playgroud)
一季度。为什么$id1 !== $id2?
在参考资料中:
当一个对象被销毁时,它的散列值可能会被其他对象重用。
Q.2 是否有与该声明相关的内容?还是我错过了其他东西?
有什么作用spl_object_hash?
[返回一个] 字符串,该字符串对于每个当前存在的对象都是唯一的,并且对于每个对象始终相同。
澄清该声明:如果您有对象 A,则每次散列对象 A 时,它都会返回相同的散列值。如果您有对象 A 和对象 B,即使两者的类型相同并包含相同的值,它们的哈希值也会不同,因为它们不是同一个对象(实例)。
由于您有两个不同的对象,因此预计它们各自的 ID 会有所不同。