gpt4 book ai didi

php - 使用带循环引用的 print_r 和 var_dump

转载 作者:IT王子 更新时间:2023-10-29 00:58:14 24 4
gpt4 key购买 nike

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

除了编写我自己的具有一些智能的 print_r 克隆之外,还有更好的选择吗?我只希望能够将变量(对象、数组或标量)打印到日志文件、http header 或网页本身。

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

<?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 Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 523800 bytes) in print_r_test.php on line 10

最佳答案

Doctrine具有相同的服务等级。

使用示例:

<?php echo "<pre>"; \Doctrine\Common\Util\Debug::dump($result, 4); echo "</pre>";?>

关于php - 使用带循环引用的 print_r 和 var_dump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6292164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com