我经常会尝试运行PHP脚本,然后得到一个空白屏幕。没有错误信息;只有一个空屏幕。原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因。

很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的办法,对吧?

是否有一种方法可以让PHP像Java那样产生有用的错误消息?


当前回答

如果你是一个ubuntu用户,那么在你的终端上运行这个命令

sudo tail -50f /var/log/apache2/error.log

它将显示最近的50个错误。 apache2有一个错误文件error.log,用来记录所有错误。

其他回答

有一个非常有用的扩展名为“xdebug”,它也会使您的报告更好。

要打开完整的错误报告,请在脚本中添加以下内容:

error_reporting(E_ALL);

这甚至会导致出现最小的警告。还有,以防万一:

ini_set('display_errors', '1');

将强制显示错误。这应该在生产服务器中关闭,但在开发时不可以。

使用@inexistent_function_call ();将导致解释器安静地停止并中止脚本解析。您应该检查无效的函数,并尽量不要使用错误抑制操作符(@ char)

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
ini_set('html_errors', 1);

此外,使用xdebug可以获得更详细的信息。

你确定PHP实际上是从。htaccess中获取'display_errors'设置吗?检查phpinfo()函数的输出以确定。

此外,你应该检查以确保你没有使用'@',如果你使用了'@include…'或'@some_function(…)',在堆栈跟踪的某处。