1.15.2 for和foreach循环

前面所介绍的使用while循环的方法是非常常见的。我们可以设置一个计数器来开始循环。在每次迭代开始的时候,将在条件表达式中测试计数器。在循环的结束处,将修改计数器内容。

使用for循环,可以编写一个更为简洁和紧凑的代码来完成这种循环操作。for循环的基本结构是:


for(expression1;condition;expression2)

expression3;


■expression1(表达式1)在开始时只执行一次。通常,可以在这里设置计数器的初始值。

■在每一次循环开始之前,condition(条件)表达式将被测试。如果条件表达式返回值为false,循环将结束。通常,可以在这里测试计数器是否已经到达临界值。

■expression2(表达式2)在每一次循环结束时执行。通常,可以在这里调整计数器的值。

■expression3(表达式3)在每一次循环中执行一次。通常,这个表达式是一个包含大量循环代码的代码块。

我们可以用for循环重写程序清单1-3中的while循环语句。在这个例子中,这段PHP代码可以变为:


<?php

for($distance=50;$distance<=250;$distance+=50){

echo"<tr>

<td align=\"right\">".$distance."</td>

<td align=\"right\">".($distance/10)."</td>

</tr>\n";}

?>


在功能方面,while版本的循环语句和for版本的循环语句是等价的。for循环更加紧凑,它节省了两行代码。

这两种循环是等价的——不能说哪种更好或者更糟糕。在特定的情况下,可以根据自己的喜好和感觉选择要使用的循环语句。

需要注意的一点是,我们可以将可变变量和for循环结合起来重复一系列的表单域。

例如,如果你具有名称为name1、name2、name3等的表单域,就可以像如下代码所示的这样进行处理:


for($i=1;$i<=$numnames;$i++){

$temp="name$i";

echo$$temp.'<br/>';//or whatever processing you want to do

}


通过动态地创建变量名称,可以依次访问每一个表单域。

除了for循环外,PHP还提供了foreach循环语句,它专门用于数组的使用。我们将在第3章中详细介绍如何使用该语句。