PHP循环控制语句4.2
PHP循环控制语句有:while、do...while、for 和 foreach。
4.2.1 while 循环语句
while 循环是 PHP 中最简单的循环语句,它的语法格式为:
while(expr){ statement }
当表达式 expr 的值为真时,将执行 statement 语句,执行结束后,再返回到 expr 表达式继续进行判断。直到表达式的值为
假,才跳出循环。
4.22 do...while 循环语句
while 语句还有另一种形式的表示,即 do...while。两者的区别在于,do...while 要比 while 语句多循环一次。当 while
表达式的值为假时,while 循环直接跳出当前循环;而do...while 语句则是先执行一遍程序块,然后再对表达式进行判断。
程序代码:
<?php $num = 1; while ($num != 1){ echo "不会看到"; } do { echo "会看到。"; }while ($num != 1); ?>
结果显示:会看到。
4.23 for 循环语句
for 循环是 PHP 中最复杂的循环结构,它的语法格式为:
for(expr1;expr2;expr3){ statement; }
其中,expr1 在第一循环时无条件取一次值;expr2 在每次循环开始前求值,如果值为真,则执行 statement,否则跳出循环,
继续往下执行;expr3 在每次循环后被执行。
案例代码:
<?php FOR ($i = 0; $i <= 2; $i++) { print "value is now " . $i . "<br>"; } ?>
输出结果:
value is now 0
value is now 1
value is now 2
在第一循环,$i=0,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i得到加1,变成1。
在第二循环,$ = 1,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i得到加1,变成2。
在第三迭代,$i= 2,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i递增,成为1 3。
在第四迭代,$i= 3,这意味着表达,($i<= 2),是假的。因此,PHP不去执行循环,不执行打印语句。
注意:在for语句中无论采用循环变量递增或递减的方式,前提是一定要保证循环能够结束,无期限的循环(死循环)将导致程序的崩溃。
4.24 foreach 循环语句
foreach 循环是 PHP4 引进来的,只能用于数组。在PHP5 中,又增加了对对象的支持。该语句的语法格式为:
[code lang="php"]
foreach (array_expression as $value)
statement
或
foreach (array_expression as $key => $value)
statement
[/code]
foreach 语句将遍历数组 array_expression,每次循环时,将当前数组中的值赋给$value(或是$key和$value),同时,数组指针向后移动直到遍历结束。当使用 foreach 语句时,数组指针将自动被重置,所以不需要手动设置指针位置。
案例代码:
<?php $book = array('asp','php','java'); foreach($book as $k=>$val) //for $book each $value( as ) echo $k.'=>'.$val.'<BR>'; ?>
输出结果:
0=>asp
1=>php
2=>java
注意:当试图使用 foreach 语句用于其他数据类型或者未初始化的变量时会产生错误。为了避免这个问题,最好使用 is_array()函数先来判断变量是否为数组类型。如果是,再进行其他操作。