如何获取 xdebug var_dump以显示完整的对象/数组

2022-08-30 06:00:43

我在WAMP上使用xdebug(php_xdebug-2.1.2-5.3-vc9.dll)。当我在大型对象或变量上使用时,它不会显示完整的变量。var_dump

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

如果没有xdebug,它就会按预期显示。我查看了文档,但没有看到解决方案。有谁知道我如何解决这个问题,以便xdebug显示完整的对象?var_dump


答案 1

这些是 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 

当然,这些也可以在运行时通过 设置,如果您不想修改php.ini并重新启动Web服务器,但需要快速更深入地检查某些内容,则很有用。ini_set()

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

Xdebug 设置在官方文档中进行了说明


答案 2

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

如果您喜欢阅读 json 格式,则可以将var_dump替换为:

return json_encode($myvar);

我一直在使用它来帮助解决我一直在构建的具有一些深度嵌套数组的服务。这将返回数组的每个级别,而不会截断任何内容或要求您更改php.ini文件。

此外,由于json_encoded数据是一个字符串,这意味着您可以轻松地将其写入错误日志

error_log(json_encode($myvar));

它可能不是每种情况的最佳选择,但这是一种选择!


推荐