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

标签 php debugging error-handling

我经常会尝试运行一个 PHP 脚本,然后返回一个空白屏幕。没有错误信息;只是一个空屏幕。原因可能是一个简单的语法错误(错误的括号、缺少分号),或者函数调用失败,或者完全是其他原因。

很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的方法,对吧?

有没有办法让 PHP 产生有用的错误消息,就像 Java 那样?

最佳答案

对于语法错误,需要在php.ini中开启错误显示。默认情况下,这些是关闭的,因为您不希望“客户”看到错误消息。 Check this page在 PHP 文档中获取有关 2 个指令的信息:error_reportingdisplay_errorsdisplay_errors 可能是您要更改的那个。如果您无法修改 php.ini,您还可以将以下行添加到 .htaccess 文件中:

php_flag  display_errors        on
php_value error_reporting       2039

您可能需要考虑为您的 PHP 版本使用 E_ALL 的值(如 Gumbo 所述),以获取所有错误的 error_reportingmore info

3 其他项目:(1) 您可以检查错误日志文件,因为它包含所有错误(除非已禁用日志记录)。 (2) 添加以下两行将帮助您调试非语法错误的错误:

error_reporting(-1);
ini_set('display_errors', 'On');

(3) 另一种选择是使用编辑器在您键入时检查错误,例如 PhpEd . PhpEd 还带有一个调试器,可以提供更详细的信息。 (PhpEd 调试器与 xdebug 非常相似,直接集成到编辑器中,因此您只需一个程序即可完成所有工作。)

卡特曼的 link也很好:http://www.ibm.com/developerworks/library/os-debug/

关于php - 如何在 PHP 中获取有用的错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40890489/

相关文章:

debugging - 让 gcc 将相对文件名放入调试信息中

c# - 当程序崩溃而没有异常时如何调试程序?

javascript - 为什么流行的 JavaScript 运行时不能处理看起来同步的异步脚本?

vue.js - 如何为Vue应用程序修复 'Unhandled Promise Rejection'?

php - 从按 "parent id"排序的一张表中选择数据

php - 统计连续访问次数

unit-testing - 单元测试控制台输出

php - 正确显示 MySQL "GROUP BY"结果

javascript - elFinder Connector.php -> Internet Explorer 中的路径

reactjs - 在ComponentDidUpdate中显示错误 react native 和Redux