我经常会try 运行一个PHP脚本,然后返回一个空白屏幕.没有错误信息;只是一个空屏幕.原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因.
很难找出哪里出了问题.我最后注释掉了代码,到处输入"echo"语句,等等,试图缩小问题的范围.但肯定有更好的办法,对吧?
有没有办法让PHP像Java一样生成有用的错误消息?
我经常会try 运行一个PHP脚本,然后返回一个空白屏幕.没有错误信息;只是一个空屏幕.原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因.
很难找出哪里出了问题.我最后注释掉了代码,到处输入"echo"语句,等等,试图缩小问题的范围.但肯定有更好的办法,对吧?
有没有办法让PHP像Java一样生成有用的错误消息?
对于语法错误,需要在php.ini中启用错误显示.默认情况下,这些选项是关闭的,因为您不希望"客户"看到错误消息.Check this page获取有关两个指令的信息:error_reporting
和display_errors
.display_errors
可能是您要换的那趟车.如果您不能修改php.ini,您还可以将以下行添加到.htaccess文件中:
php_flag display_errors on
php_value error_reporting 2039
您可能想考虑使用EyALL(如GunbO所提到的)为PHP版本的error_reporting
来获取所有的错误.more info
其他3项:(1)您可以判断错误日志(log)文件,因为它将包含所有错误(除非已禁用日志(log)记录).(2) 添加以下两行将帮助您调试非语法错误的错误:
error_reporting(-1);
ini_set('display_errors', 'On');
(3) 另一个选项是使用一个编辑器,在键入时判断错误,例如PhpEd.PhpEd还附带了一个调试器,可以提供更详细的信息.(PhpEd调试器与xdebug非常相似,并直接集成到编辑器中,因此您可以使用一个程序来完成所有操作.)
卡特曼的link分也很不错:http://www.ibm.com/developerworks/library/os-debug/分