PHP 错误调试
程序很少第一次就能正常工作。程序中可能出现许多错误,导致PHP解释器生成错误消息。您可以选择这些错误消息的位置。消息可以与其他程序输出一起发送到Web浏览器。它们也可以包含在Web服务器错误日志中。要在浏览器中显示错误消息,请将display_errors
配置指令设置为On。要将错误发送到Web服务器错误日志,请将log_errors
设置为On。如果要在两个位置都需要错误消息,可以将它们都设置为“On”。PHP定义了一些可用于设置error_reporting
值的常量,以便只报告某些类型的错误:E_ALL(除严格通知外的所有错误),E_PARSE(解析错误),E_ERROR(致命错误),E_WARNING(警告),
E_NOTICE(通知)和E_STRICT(严格通知)。在编写PHP程序时,最好使用支持PHP的编辑器,如sublimie或Emacs或一些IDE,如PHPStorm或ZendStudio。这些编辑器的一个特殊功能是语法高亮。它会根据这些部分的内容更改程序不同部分的颜色。例如,字符串为粉红色,if和while等关键字为蓝色,注释为灰色,变量为黑色。另一个功能是引用和括号匹配,这有助于确保您的引号和括号是平衡(成对出现)的。当您键入结束分隔符(如})时,编辑器会突出显示它匹配的开头的{。
调试程序时需要验证以下几点。
- 缺少分号 - 每个PHP语句都以分号(;)结尾。PHP不会停止读取语句,直到它达到分号。如果在行的末尾省略分号,PHP将继续阅读以下行中的语句,直到遇到分号。
- 没有足够的等号 - 当你在比较语句中询问两个值是否相等时,你需要两个等号(==)。使用一个等号是一个常见的错误。
- 拼写错误的变量名称 - 如果拼错了变量,PHP会将其理解为新变量。记住:对于PHP,$test与$Test不是同一个变量。
- 缺少美元符号 - 变量名称中缺少美元符号很难看到,但至少它通常会导致错误消息,以便您知道在哪里查找问题。
- 缺少括号和大括号 - 它们应该总是成对出现。
- 数组索引 - 所有数组应从零而不是1开始。
此外,正确处理所有错误并将所有跟踪消息定向到系统日志文件中,这样如果发生任何问题,它将被记录到系统日志文件中,您将能够调试该问题。
下面将介绍几个例子