如何让xdebug var_dump显示完整的对象/数组

我在WAMP上使用xdebug (php_xdebug-2.1.2-5.3-vc9.dll)。 当我在一个大对象或variables上使用var_dump ,它不显示完整的variables。

 array 'node' => array 'my_form' => array 'form' => array ... 

没有xdebug它显示应该是预期的。 我看了文档,但没有看到解决scheme。 有谁知道我可以如何解决这个问题,所以xdebug var_dump显示完整的对象?

这些是php.ini中的可configurationvariables:

 ; with sane limits xdebug.var_display_max_depth = 5 xdebug.var_display_max_children = 256 xdebug.var_display_max_data = 1024 ; with no limits ; (maximum nesting is 1023) xdebug.var_display_max_depth = -1 xdebug.var_display_max_children = -1 xdebug.var_display_max_data = -1 

当然,这些也可以通过ini_set()在运行时设置,如果你不想修改php.ini并重新启动你的web服务器,但是需要更深入地检查某些东西,那么这些工具很有用。

 ini_set('xdebug.var_display_max_depth', 5); ini_set('xdebug.var_display_max_children', 256); ini_set('xdebug.var_display_max_data', 1024); 

Xdebug设置在官方文档中有解释 。

我知道这是一个超级老的post,但我认为这可能仍然有帮助。

如果你对阅读json格式感到满意,你可以用你的var_dump代替:

 return json_encode($myvar); 

我一直在使用它来帮助解决我一直在build设的一些深度嵌套数组的服务。 这将返回你的数组的每个级别而不截断任何东西或要求你改变你的php.ini文件。

此外,因为json_encoded数据是一个string,这意味着你可以很容易地写入错误日志

 error_log(json_encode($myvar)); 

这可能不是每种情况下的最佳select,但这是一个select!

或者你可以使用另一种方法:

https://github.com/kint-php/kint

它与零设置工作,并具有比Xdebug的var_dump更多的function。 为了绕过Kint的嵌套限制,只需使用

  +d( $variable ); // append `+` to the dump call 

检查Xdebbug的var_dump设置 ,特别是这些设置的值:

 xdebug.var_display_max_children xdebug.var_display_max_data xdebug.var_display_max_depth 

我现在已经晚了,但可能有一些用处:

 echo "<pre>"; print_r($array); echo "</pre>";