如何让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>";