Php 检查变量中是否存在循环引用?

Php 检查变量中是否存在循环引用?,php,Php,有没有办法检测PHP数组是否包含自引用?示例:变量$GLOBALS具有自引用。如果使用嵌套调用执行循环数组,PHP将中断。例如: function nested_call ($data) { foreach ($data as $value) { if (is_array($value)) { nested_call($value); } } } 上述示例将用于: array(1,2,3,array(4,5,6,array(7,8,9))) 但是将使用

有没有办法检测PHP数组是否包含自引用?示例:变量
$GLOBALS
具有自引用。如果使用嵌套调用执行循环数组,PHP将中断。例如:

function nested_call ($data) {
  foreach ($data as $value) {
    if (is_array($value)) { 
      nested_call($value);
    }
  }
} 
上述示例将用于:

array(1,2,3,array(4,5,6,array(7,8,9)))

但是将使用
$GLOBALS
失败,因为它是自引用的。在再次开始
nested\u调用
之前,是否有办法检查?

这将非常困难。为什么不添加
depth
?如果我定义了一个深度,它将递归n次直到深度值,而不隐藏它。