我经常会尝试运行PHP脚本,然后得到一个空白屏幕。没有错误信息;只有一个空屏幕。原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因。
很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的办法,对吧?
是否有一种方法可以让PHP像Java那样产生有用的错误消息?
我经常会尝试运行PHP脚本,然后得到一个空白屏幕。没有错误信息;只有一个空屏幕。原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因。
很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的办法,对吧?
是否有一种方法可以让PHP像Java那样产生有用的错误消息?
当前回答
在页面顶部选择一个参数
error_reporting(E_ERROR | E_WARNING | E_PARSE);
其他回答
如果错误是在PHP代码中,您可以在代码中使用error_reporting()函数来设置为报告所有。
但是,这并不能处理PHP崩溃的情况。这方面的信息只能在服务器日志中找到。也许你无法访问这些,但我合作过的许多托管提供商都有某种方式让你访问它。例如,我最喜欢的方法是在.php所在的当前目录中创建error_log文件。尝试在那里搜索或联系您的主机提供商。
使用@inexistent_function_call ();将导致解释器安静地停止并中止脚本解析。您应该检查无效的函数,并尽量不要使用错误抑制操作符(@ char)
要打开完整的错误报告,请在脚本中添加以下内容:
error_reporting(E_ALL);
这甚至会导致出现最小的警告。还有,以防万一:
ini_set('display_errors', '1');
将强制显示错误。这应该在生产服务器中关闭,但在开发时不可以。
如果你是一个ubuntu用户,那么在你的终端上运行这个命令
sudo tail -50f /var/log/apache2/error.log
它将显示最近的50个错误。 apache2有一个错误文件error.log,用来记录所有错误。
可以通过注册钩子来显示最后一个错误或警告。
function shutdown(){
var_dump(error_get_last());
}
register_shutdown_function('shutdown');
将此代码添加到index.php的开头将有助于调试问题。