background image

报出更多的错误,这是您无法忍受。

  关于这个问题,下面的示例可能会对您有所帮助。请咨询阅读一下下面所示的 PHP 代
码:

<?php $b = "somevalue" if($b == "somevalue"){ print "Hello world!"; } ?>

  错误位于"$b ="一行(在语句的末端缺少分号),所以错误应该是"解析错误:第 3 行
缺少分号"对吧?而不应该依据解析器判定的:

Parse   error:   parse   error,   unexpected   T_IF   in   c:\program 
files\apachegroup\apache\htdocs\ereg2.php on line 4

  在第 4 行,if() 语句的语法是正确的。那么,编译器是被什么给搞糊涂了呢?线索就
是"unexpected T_IF" 

 

部分。出现 "unexpected T_???"错误时,它所表示的含义为:编

译器发现在预定义字不应该出现的位置出现。T_IF 

 

代表 if(), T_WHILE 

 

代表 while(), 

T_FOR 

 

代表 for()等。

  值得庆幸的是,一些错误的原因也很简单:

  语句没有使用分号(;)结束,比如上面的示例。字符串中缺少引号。

  其他一些常见的错误

  我见过的最常见的错误就是,当没有使用大括号( } )结束一个函数或者一个循环时出
现的错误,这很可能是最常见,最让人烦的错误。具体代码如下:

function UselessFunction() { for($i < 0; $i < 10; $i++){ }

  将产生下列错误:

Parse   error:   parse   error,   unexpected   $   in   c:\program   files\apache 
group\apache\htdocs\ereg2.php on line 9

 

  由于函数 UselessFunction 没有使用大括号( } )来结束,PHP 编译器不断查找表示
结束的大括号直至到达文件末尾为止。因为编译器未找到一个匹配的大括号,就会报告文
件末尾处有错误。

  如果正确地反映了代码的层次结构,错误信息就会变得非常明显。如果没有标明代码
的层次结构,那么最后要想查清楚到底忘记了什么也会变得几乎是不可能的。所以,请记
住,一定要标明代码的层次结构。Tab 键可以很容易地实现这一点。对后续的开发人员来说,
把握代码框架并对其进行修改也会更容易一些。