如何在PHP中获取有用的错误消息?
2022-08-30 07:03:34
很多时候,我会尝试运行一个PHP脚本,然后得到一个空白的屏幕。无错误消息;只是一个空屏幕。原因可能是简单的语法错误(括号错误,缺少分号),或函数调用失败,或者完全是其他原因。
很难弄清楚出了什么问题。我最终注释掉了代码,在任何地方都输入了“echo”语句,等等,试图缩小问题的范围。但肯定有更好的方法,对吧?
有没有办法让PHP产生一个有用的错误消息,就像Java一样?
很多时候,我会尝试运行一个PHP脚本,然后得到一个空白的屏幕。无错误消息;只是一个空屏幕。原因可能是简单的语法错误(括号错误,缺少分号),或函数调用失败,或者完全是其他原因。
很难弄清楚出了什么问题。我最终注释掉了代码,在任何地方都输入了“echo”语句,等等,试图缩小问题的范围。但肯定有更好的方法,对吧?
有没有办法让PHP产生一个有用的错误消息,就像Java一样?
对于语法错误,您需要在 php.ini中启用错误显示。默认情况下,这些处于关闭状态,因为您不希望“客户”看到错误消息。请查看 PHP 文档中的此页面,了解有关 2 个指令的信息:和 。 可能是您要更改的那个。如果无法修改 php.ini,还可以将以下行添加到 .htaccess 文件中:error_reporting
display_errors
display_errors
php_flag display_errors on
php_value error_reporting 2039
您可能需要考虑将E_ALL的值(如Gumbo所述)用于您的PHP版本,以获取所有错误。更多信息error_reporting
3 其他项目:(1)您可以检查错误日志文件,因为它将包含所有错误(除非已禁用日志记录)。(2)添加以下2行将帮助您调试不是语法错误的错误:
error_reporting(-1);
ini_set('display_errors', 'On');
(3)另一种选择是使用在键入时检查错误的编辑器,例如PhpEd。PhpEd还带有一个调试器,可以提供更详细的信息。(PhpEd调试器与xdebug非常相似,并直接集成到编辑器中,因此您可以使用1个程序来完成所有操作。
卡特曼的链接也非常好:http://www.ibm.com/developerworks/library/os-debug/
以下操作将启用所有错误:
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
另请参阅以下链接