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

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

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


当前回答

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

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

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

其他回答

您可以在要调试的文件中包含以下行:

error_reporting(E_ALL);
ini_set('display_errors', '1');

这将覆盖PHP .ini中的默认设置,这只会使PHP向日志报告错误。

错误和警告通常出现在....\logs\php_error.log或....\logs\apache_error.log中,具体取决于您的php.ini设置。

此外,有用的错误通常指向浏览器,但由于它们不是有效的html,因此不会显示。

所以"tail -f"你的日志文件,当你得到一个空白屏幕使用IEs "view" -> "source"菜单选项来查看原始输出。

在页面顶部选择一个参数

error_reporting(E_ERROR | E_WARNING | E_PARSE);

可以通过注册钩子来显示最后一个错误或警告。

function shutdown(){
  var_dump(error_get_last());
}

register_shutdown_function('shutdown');

将此代码添加到index.php的开头将有助于调试问题。

你也可以像这样在终端(命令行)运行文件:

这将运行您的代码,并为您提供与在error.log中看到的任何错误相同的输出。它提到了错误和行号。