PHP - 错误调试


PHP 代码中的错误是指程序中的错误,该错误会导致意外结果或崩溃。在用户之前发现 bug 的过程的一种系统方法称为调试。本章给出了一些跟踪 PHP 代码中错误的重要提示。

程序很少在第一次就正常工作。程序中可能会出现许多错误,从而导致 PHP 解释器生成错误消息。您可以选择这些错误消息的去向。这些消息可以与其他程序输出一起发送到 Web 浏览器。它们也可以包含在 “web server error log” 中。

要使错误消息显示在浏览器中,请将 “display_errors” 配置指令设置为 ON。确保在 “php.ini” 文件中启用以下设置。

display_errors=On
display_startup_errors=On

您还可以使用 ini_set() 函数覆盖 “pnp.ini” 配置 −


ini_set('display_errors', 1)
ini_set('display_startup_errors', 1)

要将错误发送到 Web 服务器错误日志,请将 “log_errors” 设置为 ON。如果您希望在这两个位置显示错误消息,则可以将它们都设置为 On

PHP 定义一些常量,您可以使用这些常量来设置 error_reporting 的值,以便仅报告某些类型的错误 -

  • E_ALL (针对除严格通知外的所有错误)
  • E_PARSE (解析错误)
  • E_ERROR(致命错误)
  • E_WARNING (警告)
  • E_NOTICE (通知)
  • E_STRICT(严格通知)

在编写 PHP 程序时,最好使用 BBEditEmacs 等 PHP 感知编辑器。这些编辑器的特殊功能之一是语法高亮。它根据程序中不同部分的颜色来改变这些部分的颜色。例如,字符串为粉红色,if 和 while 等关键字为蓝色,注释为灰色,变量为黑色。

Microsoft 的 VS Code 也是编辑 PHP 代码的不错选择。如果安装 VS Code 扩展 Intelephense,则在编辑器窗口中输入 PHP 语句时,将收到类型提示和错误消息。

另一个功能是引号和括号匹配,这有助于确保您的引号和括号是平衡的。键入结束分隔符(如 “}”)时,编辑器将突出显示它匹配的左 “{”。

调试代码时要检查的要点

在调试程序代码时,需要验证以下几点 -

缺少分号

每个 PHP 语句都以分号 ( ).PHP 不会停止读取语句,直到它到达分号。如果省略行尾的分号,PHP 将继续读取下一行的语句。

等号不够

当您询问比较语句中的两个值是否相等时,您需要两个等号 (==)。使用一个等号是一个常见的错误。

拼写错误变量名称

如果你拼错了一个变量,那么 PHP 会把它理解为一个新变量。记住: 对于 PHP,$test 与 $Test 不是相同的变量。

缺少美元符号

变量名称中缺少美元符号确实很难看到,但至少它通常会导致错误消息,以便您知道在何处查找问题。

令人不安的引述

您的引文可能太多、太少或类型错误。因此,请检查报价数量是否均衡。

缺少括号和大括号

他们应该总是成对的。

数组索引

PHP 中的数组是项目的集合,每个项目都分配了一个从 0 开始的递增索引。

此外,正确处理所有错误并将所有跟踪消息定向到系统日志文件中,以便在发生任何问题时将其记录到系统日志文件中,您将能够调试该问题。