如何在php中检查变量的内存位置?

Yos*_*sef 15 php

如何在php中检查变量的内存位置?

谢谢

Mar*_*ker 10

如果您需要知道$ varA是否是对$ varB的引用,那么您运气不好:PHP内部不会向开发人员提供此信息.

但是,您可以通过解析var_dump或debug_zval_dump()的输出来提取有关引用的一些信息.阅读相关的手册部分,并查看此问题以获取一些详细信息.

并准备好Derick Rethans关于PHP中引用的这篇(PDF)文章.

使用debug_zval_dump()时要注意refcount,因为该函数总是在其自身内创建一个额外的引用,将值递增1

  • 感谢您提供文章链接! (2认同)

mar*_*rio 6

如果您需要知道变量是否是对另一个变量的引用,那么debug_zval_dump()是唯一的选择.


Ale*_*kov 6

要测试一个变量是否是对另一个变量的引用,您可以执行以下操作:

function is_ref_to(&$a, &$b)
{
    $t = $a;
    if($r=($b===($a=1))){ $r = ($b===($a=0)); }
    $a = $t;
    return $r;
}
Run Code Online (Sandbox Code Playgroud)