首页 » PHP和MySQL Web开发(原书第4版) » PHP和MySQL Web开发(原书第4版)全文在线阅读

《PHP和MySQL Web开发(原书第4版)》1.15 通过迭代实现重复动作

关灯直达底部

计算机非常擅长的一件事情就是自动地、重复地执行任务。如果某些任务需要以相同的方式多次执行,可以使用循环语句来重复程序中的某些部分。

Bob希望在客户订单中加入一个运费表。对于Bob所使用的送货人来说,运费的多少取决于包裹要运送的距离。使用一个简单的公式就可以很容易地计算出所需的运费。

我们希望的运费表如图1-7所示。

图 1-7 运费表显示了运费随着距离的增加而增加

程序清单1-2给出了显示该运费表的HTML代码,可以看出这是一段很长而且重复的代码。

程序清单1-2 freight.html——Bob运费表的HTML代码

<html>

<body>

<table border="0"cellpadding="3">

<tr>

<td bgcolor="#CCCCCC">Distance</td>

<td bgcolor="#CCCCCC">Cost</td>

</tr>

<tr>

<td >50</td>

<td >5</td>

</tr>

<tr>

<td >100</td>

<td >10</td>

</tr>

<tr>

<td >150</td>

<td >15</td>

</tr>

<tr>

<td >200</td>

<td >20</td>

</tr>

<tr>

<td >250</td>

<td >25</td>

</tr>

</table>

</body>

</html>

如果我们能够使用一台低廉而又不知疲倦的计算机来完成这些,为什么还要找一个容易疲劳的人来输入这些HTML代码,并且还要付给他费用呢?

循环语句可以让PHP重复地执行一条语句或一个语句块。

1.15.1 while循环

PHP中最简单的循环就是while循环。就像if语句一样,它也依赖于一个条件。

while循环语句和if语句的不同就在于if语句只有在条件为true的情况下才执行后续的代码块一次,而while循环语句只要其条件为true,就会不断地重复执行代码块。

通常,当不知道所需的重复次数时,可以使用while循环语句。如果要求一个固定次数的重复,可以考虑使用for循环语句。

while循环的基本结构如下所示:

while(condition)expression;

如下所示的while循环语句可以显示数字1~5。

$num=1;

while($num<=5){

echo$num."<br/>";

$num++;

}

在每一次迭代的开始,都将对条件进行测试。如果条件为false,该语句块将不会执行,而且循环就会结束。循环语句后面的下一条语句将被执行。

我们可以使用while循环来完成一些更有意义的任务,例如显示图1-7所示的运费表。

程序清单1-3给出了使用while循环生成运费表的代码。

程序清单1-3 freight.php——用PHP生成的Bob运费表

<html>

<body>

<table border="0"cellpadding="3">

<tr>

<td bgcolor="#CCCCCC">Distance</td>

<td bgcolor="#CCCCCC">Cost</td>

</tr>

<?

$distance=50;

while($distance<=250){

echo"<tr>

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

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

</tr>/n";

$distance+=50;

}

?>

</table>

</body>

</html>

为了使得由这个脚本所生成的HTML代码更具可读性,还需要增加一些新行和空格。正如我们已经介绍的,浏览器将忽略这些字符,但是这些字符对于阅读这段代码的人来说又非常重要。因此,必须经常查看这个HTML页面,确保页面输出就是你所希望的。

在程序清单1-3中,你会发现在一些字符串中出现了'/n'字符。当这个字符出现在一个引号的字符串中,它将被解释成一个换行字符。