PHP - 错误调试


程序很少能在第一次就正确运行。程序中的许多问题都可能导致 PHP 解释器生成错误消息。您可以选择这些错误消息的去向。这些消息可以与其他程序输出一起发送到 Web 浏览器。它们还可以包含在 Web 服务器错误日志中。

要使错误消息显示在浏览器中,请将display_errors配置指令设置为On。要将错误发送到 Web 服务器错误日志,请将log_errors设置为 On。如果您希望在两个地方都出现错误消息,则可以将它们都设置为“开”。

PHP 定义了一些常量,可用于设置error_reporting的值,以便仅报告某些类型的错误:E_ALL(适用于除严格通知之外的所有错误)、E_PARSE(解析错误)、E_ERROR(致命错误)、E_WARNING(警告)、 E_NOTICE(通知)和E_STRICT(严格通知)。

在编写 PHP 程序时,最好使用支持 PHP 的编辑器,例如BBEditEmacs。这些编辑器的特殊功能之一是语法突出显示。它根据程序的不同部分的内容来改变这些部分的颜色。例如,字符串是粉色的,if 和 while 等关键字是蓝色的,注释是灰色的,变量是黑色的。

另一个功能是引号和括号匹配,这有助于确保引号和括号的平衡。当您键入结束分隔符(例如 })时,编辑器会突出显示与其匹配的开始 {。

在调试程序时需要验证以下几点。

  • 缺少分号- 每个 PHP 语句都以分号 (;) 结尾。PHP 在到达分号之前不会停止读取语句。如果省略行末尾的分号,PHP 会继续读取下一行的语句。

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

  • 拼写错误的变量名- 如果您拼写错误一个变量,那么 PHP 会将其理解为一个新变量。请记住:对于 PHP,$test 与 $Test 不是同一变量。

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

  • 令人不安的引言- 您可能有太多、太少或错误类型的引言。因此,请检查报价数量是否平衡。

  • 缺少括号和大括号- 它们应该始终成对。

  • 数组索引- 所有数组都应从零而不是 1 开始。

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