将print_r和var_dump与循环引用结合使用
2022-08-30 11:22:00
我正在使用MVC框架Symfony,似乎很多我想调试的内置对象都有循环引用。这使得无法使用 or 打印变量(因为它们无限地遵循循环引用,或者直到进程内存不足,以先到者为准)。print_r()
var_dump()
与其用一些智能编写我自己的克隆,还有更好的选择吗?我只想能够将变量(对象,数组或标量)打印到日志文件,http标头或网页本身。print_r
编辑:要澄清问题所在,请尝试以下代码:
<?php
class A
{
public $b;
public $c;
public function __construct()
{
$this->b = new B();
$this->c = new C();
}
}
class B
{
public $a;
public function __construct()
{
$this->a = new A();
}
}
class C
{
}
ini_set('memory_limit', '128M');
set_time_limit(5);
print_r(new A());
#var_dump(new A());
#var_export(new A());
它不适用于 或 。错误消息是:print_r()
var_dump()
var_export()
PHP 致命错误:允许内存大小为 134217728 字节已耗尽(尝试分配 523800 字节),print_r_test.php第 10 行