在使用 Xdebug 和 PHPStorm 调试时,有没有办法查看变量、对象的分配内存地址?
不知道这是 Xdebug 或 PHPstorm 中的设置吗,但我确信这是可能的现在它只显示值而不是地址..
我的目标是看看我是否真的在其他类中使用同一个对象实例
答案1
答案2
不要犯和我一样的错误。对象地址可能不同,但对象是相同的(即 spl_object_hash 为两个对象返回相同的 id)。
例如,我写了这个测试:
$a = $b = new StdClass;
$objects = [$a, $b];
var_dump(spl_object_hash($a), spl_object_hash($b));
foreach ($objects as $object1);
var_dump(spl_object_hash($a), spl_object_hash($b));
foreach ($objects as &$object2);
var_dump(spl_object_hash($a), spl_object_hash($b));
正如预期的那样,spl_object_hash() 返回的 id 与 $a、$b 以及 $objects 中的对象相同。但是 $objects 中的对象的地址与 $a 和 $b 不同:
string(32) "000000007fbf1856000000002722d91d"
string(32) "000000007fbf1856000000002722d91d"
string(32) "000000007fbf1856000000002722d91d"
string(32) "000000007fbf1856000000002722d91d"
string(32) "000000007fbf1856000000002722d91d"
string(32) "000000007fbf1856000000002722d91d"