PHP:获取参考ID

Der*_*huk 2 php

如何使用该var_dump函数获取PHP参考ID :

// PHP 5.2.6
class Test {}

$test1 = new Test; var_dump($test1);
$test1b = $test1;  var_dump($test1b);
$test2 = new Test; var_dump($test2);
Run Code Online (Sandbox Code Playgroud)

导致:

object(Test)#1 (0) {}
object(Test)#1 (0) {}
object(Test)#2 (0) {}
Run Code Online (Sandbox Code Playgroud)


看,var_dump可以告诉哪些引用是相同的,没有直接比较,并打印它们的引用ID #1#2.如何访问参考ID?

Pas*_*TIN 9

我想一个解决方案可能是使用spl_object_hash:

此函数返回对象的唯一标识符.该id可以用作用于存储对象或用于识别对象的散列键.

这不是一个像你所得到的"简单"数字var_dump,但我想它总比没有好......


例如,使用这部分代码,灵感来自您的:

$test1 = new Test;
$test1b = $test1;
$test2 = new Test;

echo spl_object_hash($test1) . '<br />';
echo spl_object_hash($test1b) . '<br />';
echo spl_object_hash($test2) . '<br />';
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

000000002c836d1d000000006bfbdc77
000000002c836d1d000000006bfbdc77
000000002c836d1e000000006bfbdc77
Run Code Online (Sandbox Code Playgroud)