我在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显示完整的对象吗?


当前回答

我想推荐var_export($array) -它不显示类型,但它生成语法,你可以在你的代码中使用:)

其他回答

我知道这有点晚了,但可能会有一些用处

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

我想推荐var_export($array) -它不显示类型,但它生成语法,你可以在你的代码中使用:)

有时文件中的var_export非常有用。

file_put_contents(__DIR__.'/temp.txt', var_export($var, true), FILE_APPEND);

例如,如果您正在调试生产服务器上的某些内容。

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

如果你喜欢阅读json格式,你可以用以下格式替换你的var_dump:

return json_encode($myvar);

我一直在使用它来帮助排除我一直在构建的具有一些深度嵌套数组的服务的故障。这将返回数组的每一层,而不需要截断任何东西,也不需要更改php.ini文件。

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

error_log(json_encode($myvar));

这可能不是所有情况下的最佳选择,但这是一种选择!

或者你可以用另一种说法:

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

它可以在零设置的情况下工作,而且比Xdebug的var_dump具有更多的特性。要绕过Sage的嵌套限制,只需使用

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