启用xdebug时,Firebug中的var_dump不可读

时间:2009-09-23 12:18:51

标签: php firefox error-handling firebug xdebug

Xdebug以自己的方式显示“var_dump”,提供更多有用的信息,但在Firebug中是不可读的。

我想知道是否有办法在Firebug中显示var_dump,使其在不禁用xdebug的情况下可读,并且还在PHP中保持xdebug显示的var_dump。

Firebug中显示的var_dump示例:

$test = array('id' => '42', 'name' => 'Mao');
var_dump($test);

默认值:

array(2) {
  ["id"]=>
  string(2) "42"
  ["name"]=>
  string(3) "Mao"
}

Xdebug:

<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b>
  'id' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'42'</font> <i>(length=2)</i>
  'name' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'Mao'</font> <i>(length=3)</i>
</pre>

5 个答案:

答案 0 :(得分:9)

您可以通过将var_dump()设置为xdebug.overload_var_dump来关闭Xdebug - false - 重载。然后,当您不需要额外的HTML格式时,可以使用var_dump(),当需要完全格式化的调试输出时,可以使用xdebug_var_dump()

但正如我在上面的评论中所写,如果您使用的是FirePHP,则可以让FirePHP格式化Firebug控制台中的输出:

fb($variable, FirePHP::DUMP) // or
FB::dump('Key', $variable) // or
$firephp->dump('Key', $variable); // where $firephp is your FirePHP instance

答案 1 :(得分:9)

Mike B的解决方案,

ini_set('xdebug.overload_var_dump', 0);

无法使用我的安装。

但我可以这样做来压制html:

ini_set( 'html_errors' , 0 );

答案 2 :(得分:6)

php.ini 中设置xdebug.overload_var_dump="0"解决了我的问题。

答案 3 :(得分:4)

ini_set('xdebug.overload_var_dump', 0);在这里也不起作用。 ini_set( 'html_errors' , 0 );确实有效,但有时可能会很慢。

作为一种简单的解决方法,您可以使用它:

echo var_export($this);

只有7个按键比正常的var_dump更多。

答案 4 :(得分:1)

您可以使用替代方法:

http://raveren.github.io/kint/

它的设置为零,并且具有比Xdebug的var_dump更多的功能。

截图:

Kint screenshot