如何在PHP中获取有用的错误消息?
我发现用PHP进行编程非常令人沮丧。 很多时候我会尝试运行脚本,然后回到空白屏幕。 没有错误信息,只是空的屏幕。 原因可能是一个简单的语法错误(错误的括号,缺少分号),或失败的函数调用,或完全是其他的东西。
弄清楚哪里出了问题是非常困难的。 我最终评论了代码,在各处输入“回声”声明等等,试图缩小问题的范围。 但是肯定有更好的方法,对吧?
那么,有没有办法让PHP像Java那样产生有用的错误信息呢? 任何人都可以推荐好的PHP调试技巧,工具和技巧?
对于语法错误,您需要在php.ini中启用错误显示。 默认情况下,这些关闭是因为您不希望“客户”看到错误消息。 在PHP文档中查看此页面,以获取有关2个指令的信息: error_reporting
和display_errors
。 display_errors
可能是你想改变的那个。 如果您无法修改php.ini,则还可以将以下行添加到.htaccess文件中:
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);
另请参阅以下链接
您可以在要调试的文件中包含以下行:
error_reporting(E_ALL);
ini_set('display_errors', '1');
这覆盖了php.ini中的默认设置,它只是让PHP向日志报告错误。
链接地址: http://www.djcxy.com/p/4513.html