Answers:
这些是php.ini中的可配置变量:
; with sane limits
xdebug.var_display_max_depth = 10
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', '10');
ini_set('xdebug.var_display_max_children', '256');
ini_set('xdebug.var_display_max_data', '1024');
display_max_depth
var_dump
我知道这是一篇非常老的文章,但我认为这可能仍然有用。
如果您愿意阅读json格式,则可以将var_dump替换为:
return json_encode($myvar);
我一直在使用它来帮助解决我正在构建的具有一些深层嵌套数组的服务。这将返回数组的每个级别,而不会截断任何内容或要求您更改php.ini文件。
另外,由于json_encoded数据是字符串,因此您可以轻松地将其写入错误日志
error_log(json_encode($myvar));
在每种情况下,它可能都不是最佳选择,但这是一个选择!
或者您可以使用替代方法:
https://github.com/kint-php/kint
它的设置为零,并且比Xdebug的var_dump具有更多的功能。要使用Kint绕过飞行中的嵌套限制,只需使用
+d( $variable ); // append `+` to the dump call
我知道这很晚了,但可能有用:
echo "<pre>";
print_r($array);
echo "</pre>";
print_r()
是不是对的var_dump的替代品。
签出Xdebbug的var_dump设置,尤其是这些设置的值:
xdebug.var_display_max_children
xdebug.var_display_max_data
xdebug.var_display_max_depth
我想推荐var_export($array)
-它不显示类型,但是会生成可在代码中使用的语法:)