相关疑难解决方法(0)

将print_r和var_dump与循环引用一起使用

我正在使用MVC框架Symfony,似乎我想调试的很多内置对象都有循环引用.这使得无法使用print_r()或打印变量var_dump()(因为它们无限制地遵循循环引用或直到进程耗尽内存,以先到者为准).

而不是print_r用一些智能编写我自己的克隆,那里有更好的替代品吗?我只希望能够将变量(对象,数组或标量)打印到日志文件,http标头或网页本身.

编辑:要澄清问题所在,请尝试以下代码:

<?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());
Run Code Online (Sandbox Code Playgroud)

它无法使用print_r(),var_dump()var_export().错误消息是:

PHP致命错误:第10行的print_r_test.php中允许的内存大小为134217728字节(尝试分配523800字节)

php debugging circular-reference

38
推荐指数
4
解决办法
2万
查看次数

标签 统计

circular-reference ×1

debugging ×1

php ×1