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

标签 php debugging error-handling

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

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

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

最佳答案

默认情况下,显示错误处于关闭状态,因为您不希望“客户”看到错误消息。

Check this page有关 2 个指令的信息,请参阅 PHP 文档:error_reportingdisplay_errorsdisplay_errors 可能是您想要更改的错误。

所以你有3个选择:

(1) 您可以检查错误日志文件,因为它将包含所有错误(除非日志记录已被禁用)。要启用错误日志记录,请确保将 log_errors 配置指令设置为 On。当错误不是在 PHP 中发生而是由 Web 服务器发出时,日志也很有用。

(2) 您可以添加以下两行,这将帮助您调试同一文件中发生的非语法错误的错误:

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

请注意,在实时服务器上,后者应设置为关闭(但仅限后者,因为您仍然需要从日志文件中了解发生的所有错误)。

但是,对于同一文件中发生语法错误,上述命令将不起作用,您需要在 php.ini 中启用它们。如果您无法修改 php.ini,您也可以尝试将以下几行添加到 .htaccess 文件中,尽管现在很少支持:

php_flag  display_errors        on
php_value error_reporting       -1

(3) 另一种选择是使用编辑器在您键入时检查错误,例如 PhpEd 、VSCode 或 PHPStorm。它们都带有一个调试器,可以提供更详细的信息。 (PhpEd 调试器与 xdebug 非常相似,并且直接集成到编辑器中,因此您可以使用 1 个程序来完成所有操作。)

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

相关文章:

php - fatal error : Uncaught exception 'Braintree_Exception_Configuration' with message 'environment needs to be set.'

forms - 发生验证错误时,我想在输入表单中显示错误值

Shell 脚本.....如果出错,请改为执行此操作

javascript - 如何通过 JQuery Ajax 调用在 PHP 中验证我的表单?

php - str_get_html 未加载有效的 html 字符串

python - tensorflow 、自定义损失、custom_gradient、temp tf.Variable 导致错误

c - Visual Studio 2008 调试大型 c 文件

php - 如何在 SQL 中存储 PHP 变量,以便在检索时它仍然是一个变量(而不是一个值)

php - 将 "status"数据插入AuthController中的数据库

android - 将 Android 应用程序分发给 Alpha 测试人员时如何跟踪错误?