我经常会尝试运行PHP脚本,然后得到一个空白屏幕。没有错误信息;只有一个空屏幕。原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因。
很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的办法,对吧?
是否有一种方法可以让PHP像Java那样产生有用的错误消息?
我经常会尝试运行PHP脚本,然后得到一个空白屏幕。没有错误信息;只有一个空屏幕。原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因。
很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的办法,对吧?
是否有一种方法可以让PHP像Java那样产生有用的错误消息?
当前回答
error_reporting(E_ALL | E_STRICT);
并在php.ini中打开显示错误
其他回答
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
对于那些使用nginx并且即使文件<?PHP echo 123;在我的情况下,我在nginx配置文件中没有这个必要的PHP选项:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_params文件中没有这个选项,所以PHP不起作用,日志中也没有任何错误。
如果你是一个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向日志报告错误。
一些应用程序确实自己处理这些指令,通过调用这样的命令:
error_reporting(E_ALL & ~E_DEPRECATED); or error_reporting(0);
从而覆盖你的。htaccess设置。