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意识的编辑器,如 BBEdit 或 Emacs ,是一个好主意。其中一个特殊功能是语法高亮。它会基于程序的不同部分的内容更改颜色。例如,字符串是粉红色的,if和while等关键字是蓝色的,注释是灰色的,变量是黑色的。
另一个功能是引号和括号匹配,它可以帮助确保您的引号和括号是平衡的。当您键入一个结束分界符,例如}时,编辑器会突出显示与之匹配的开括号{。
在调试程序时,需要验证以下几点。
- 缺少分号 - 每个PHP语句都以分号(;)结束。PHP不会在遇到分号之前停止读取语句。如果您在一行的末尾遗漏了分号,PHP将继续在下一行上读取语句。
-
等号不足 - 当您在比较语句中询问两个值是否相等时,您需要两个等号(
==
)。使用一个等号是常见错误。 -
拼写错误的变量名 - 如果您拼写错误变量名,PHP会将其视为新变量。记住:对于PHP,
$test
不同于$Test
。 -
缺少美元符号 - 在变量名中缺少美元符号很难看出来,但至少通常会导致错误消息,以便您知道要查找问题的位置。
-
引号问题 - 您可能拥有过多、过少或错误类型的引号。因此,请检查引号的平衡数量。
-
括号和大括号丢失 - 它们应该总是成对出现。
-
数组索引 - 所有数组应该从0开始,而不是1。
此外,正确处理所有的错误,并将所有的追踪信息导向系统日志文件,这样如果出现任何问题,它都将被记录在系统日志文件中,您就可以调试该问题了。