如何在PHP中获取有用的错误消息?

我发现用PHP进行编程非常令人沮丧。 很多时候我会尝试运行脚本,然后回到空白屏幕。 没有错误信息,只是空的屏幕。 原因可能是一个简单的语法错误(错误的括号,缺少分号),或失败的函数调用,或完全是其他的东西。

弄清楚哪里出了问题是非常困难的。 我最终评论了代码,在各处输入“回声”声明等等,试图缩小问题的范围。 但是肯定有更好的方法,对吧?

那么,有没有办法让PHP像Java那样产生有用的错误信息呢? 任何人都可以推荐好的PHP调试技巧,工具和技巧?


对于语法错误,您需要在php.ini中启用错误显示。 默认情况下,这些关闭是因为您不希望“客户”看到错误消息。 在PHP文档中查看此页面,以获取有关2个指令的信息: error_reportingdisplay_errorsdisplay_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);

另请参阅以下链接

  • http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors
  • http://php.net/manual/en/errorfunc.configuration.php#ini.display-startup-errors
  • http://php.net/manual/en/function.error-reporting.php

  • 您可以在要调试的文件中包含以下行:

    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    

    这覆盖了php.ini中的默认设置,它只是让PHP向日志报告错误。

    链接地址: http://www.djcxy.com/p/4513.html

    上一篇: How to get useful error messages in PHP?

    下一篇: startsWith() and endsWith() functions in PHP