我在WAMP上使用xdebug(php_xdebug-2.1.2-5.3-vc9.dll).当我在大型对象或变量上使用时,它不会显示完整变量.var_dump
array
'node' =>
array
'my_form' =>
array
'form' =>
array
...
Run Code Online (Sandbox Code Playgroud)
没有xdebug它显示应该是预期的.我查看了文档,但没有看到解决方案.有谁知道我怎么解决这个问题,所以xdebug var_dump
显示完整的对象?
Mic*_*ski 573
这些是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
Run Code Online (Sandbox Code Playgroud)
当然,这些也可以在运行时设置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');
Run Code Online (Sandbox Code Playgroud)
Chr*_*itz 36
我知道这是一个超级老帖子,但我认为这可能仍然有用.
如果您对阅读json格式感到满意,可以将var_dump替换为:
return json_encode($myvar);
Run Code Online (Sandbox Code Playgroud)
我一直在使用它来帮助解决我正在构建的具有一些深度嵌套数组的服务.这将返回数组的每个级别,而不会截断任何内容或要求您更改php.ini文件.
此外,因为json_encoded数据是一个字符串,这意味着您可以轻松地将其写入错误日志
error_log(json_encode($myvar));
Run Code Online (Sandbox Code Playgroud)
它可能不是每种情况的最佳选择,但它是一个选择!
rav*_*ren 13
或者您可以使用替代方案:
https://github.com/kint-php/kint
它的设置为零,并且具有比Xdebug的var_dump更多的功能.要使用Kint动态绕过嵌套限制,只需使用
+d( $variable ); // append `+` to the dump call
Run Code Online (Sandbox Code Playgroud)
小智 10
我现在这已经晚了但它可能有一些用处:
echo "<pre>";
print_r($array);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)
结帐Xdebbug的var_dump设置,尤其是这些设置的值:
xdebug.var_display_max_children
xdebug.var_display_max_data
xdebug.var_display_max_depth
Run Code Online (Sandbox Code Playgroud)