将PHP对象输出到控制台的更好方法?

时间:2013-06-30 01:16:21

标签: php json

我正在尝试找到在浏览器中调试PHP的最佳方法。

编辑:

我知道xdebug,var_dump和print_r;那不是重点。 a)我想要一种在网站上线时调试的方法(我知道,这很糟糕,但有时需要快速修复),b)在整个网页上转储PHP变量很难看,而且c)我有时需要知道为什么AJAX调用不起作用,并且在控制台中查看JSON更容易。

可能的其他解决方案包括将调试输出包装在隐藏的div中,例如

<div id="debug"><?php var_dump($all_the_junk) ?></div><script>document.getElementById('debug').style.display='none'</script>

然后输入类似

的内容
document.getElementById('debug')style.display = 'block'

进入控制台。

但是说实话,这种情况很糟糕,并且无法以一种整洁的方式看到一切。

EndEdit中;

所以,无论如何,我有以下代码:

function log_as_json($vars)
{
    if(is_resource($vars)) {
        return;
    }
    else {
        if($vars)
        {
            $json =  @json_encode($vars);
            print "<script>console.log($json);</script>";
        }

    }
}

问题是偶尔我会得到这些可怕的递归,但我不确定检查json_encode支持的类型的最佳方法是什么。我还怀疑有更好的方法来做到这一点。建议将不胜感激。谢谢!

4 个答案:

答案 0 :(得分:3)

最好的方法是使用xdebug和允许您设置断点的IDE

答案 1 :(得分:3)

如果您真的热衷于在浏览器中进行调试,我建议使用Chrome Logger(以前称为ChromePHP)。

答案 2 :(得分:0)

我使用print_rvar_dump - 这是他们的目的。

我想你可以在console.log中嵌入这些电话 - 不知道它们会如何显示。

答案 3 :(得分:0)

我知道这很老了,但这是一种对我有用的方法,只需在需要时调用该函数即可。

function console_log( $data ){
    echo '<script>';
    echo 'console.log('. json_encode( $data ) .')';
    echo '</script>';
}