16.2.3 逻辑错误的处理
逻辑错误是一种比较难以发现和处理的错误。这种错误发生时并没有明显的错误信息报告,因为程序都正常执行,只是最终结果(或在某种情况下的结果)并不是所期望的结果。例如下面的示例代码。
01 <?php
02 for($i=0;$i<10;++$i);
03 {
04 echo'PHP';
05 }
06 ?>
【代码解析】这段程序本意是向页面输出10个字符串“PHP”,但实际的执行结果却只是输出了一个“PHP”。程序本身没有任何语法错误,运行也正常,输出了字符串“PHP”,但是没有循环输出更多的字符串“PHP”。原因就是在for循环结构后面加了一个分号,这个分号紧跟for循环,构成一个空语句。因为for循环语句后紧跟的应该是循环体,这个分号使得PHP认为这个空语句就是for循环结构的循环体,所以循环了10次没有任何实际操作的空语句,最后才执行了花括号括住的echo语句,输出一个字符串“PHP”。
提示 类似这样的逻辑错误在编写程序时很难被发现,有时,开发人员会认为一个逻辑没有错误,但实际的执行结果却不符合预期的结果。这就需要在编写程序中理清思路,考虑清楚程序执行的各种可能的情况等。一旦发现程序执行后没有得到预期结果,就需要仔细阅读程序,进一步查看代码和程序执行流程,找到逻辑出错的部分。