文章教程

16.2在PHP中处理程序错误

9/17/2020 9:26:54 PM 人评论 次浏览

16.2 在PHP中处理程序错误

PHP中的程序异常通常有以下3种情况:

❑语法错误

❑运行时错误

❑逻辑错误

下面分3小节讲述这3种错误在PHP中应该如何检查、解决以及如何避免。

16.2.1 语法错误的处理

每种编程语言都有自己的一套编写规则,这些规则通常叫做语法,PHP也不例外。例如,PHP语言规定每个语句必须以分号结束,又如,定义函数时必须使用关键字function,诸如此类的都是PHP的语法内容。如果程序中的语句有不符合这些语法规则的地方,PHP分析器就会产生语法分析错误,导致程序执行失败或中断。计算机非常严格地按照PHP语法执行PHP脚本,任何语法错误都不能容忍,即便是在一个语句结束的地方少了一个分号。

常见的语法错误往往都是比较细小的地方,或者由粗心大意导致。比如,在一个语句末尾缺少分号,在一个字符串结束时没有单引号或双引号、括号不匹配等。通常这些问题会在PHP脚本执行时由PHP分析器输出到页面中。例如下面一小段有语法错误的PHP代码,执行时就会产生一个语法错误。


<?php

$str='this is a string;

echo$str;

?>


这段代码执行时,会在浏览器页面上看到类似下面的语法错误(Parse error)信息。


Parse error:parse error,unexpected$end in D:\Apache2\htdocs\webroot\ch16\test.php on line 4


这个错误信息表明这是一个语法分析错误:parse error,并且给出错误原因是unexpected$end,同时还指出了错误文件及错误所在的行数D:\Apache2\htdocs\webroot\ch16\test.php on line 4。这个语法错误里的unexpected$end,可以解释为“意外的结束(符)$end”,之所以是unxepected,是因为程序里在第2行定义字符串时,少了字符串结束的单引号。PHP分析器所报告的错误在第4行,原因是PHP分析器从第2行开始,就一直“等待”字符串$str的结束符——单引号',直到第4行程序结尾,仍没有单引号来结束字符串,所以PHP分析器报告错误,认为字符串还没有结束,却在第4行结束了程序,这是意外的,所以报告错误在第4行。

注意 当碰到PHP分析器产生的错误时,错误代码不一定就在所报告的那一行,应该在前后代码中仔细查找语法错误。

如果读者在执行这一小段有语法错误的代码时,没有看到任何报错信息,或者执行其他PHP脚本时,本应该有内容输出,看到的却是一个空白页面,那么很可能是由于PHP的配置文件php.ini中的display_errors项设置为Off,请将该项设置为On,这一设置的含义是,将PHP显示错误打开。设置好该项后,重启Apache服务器即可。

教程类别