我试图找到在浏览器中调试 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'
进入控制台。
但老实说,这种做法很糟糕,违背了能够以整洁的方式查看所有内容的目的。
结束编辑;
所以,无论如何,我有以下代码:
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 支持的类型的最佳方法是什么。我也怀疑有更好的方法来做到这一点。建议将不胜感激。谢谢!