在PHP中有四种循环方式,每种都用不同的方式进行循环,常用的有三种,但是你需要对四种都有所了解。
第一种循环方式被叫做while
循环,可以视为一种特殊的if
语句,只有当条件为假的时候才停止循环。用伪代码表示如下:
while(condition is true){
do code
}
注意PHP是用代码块来表示循环范围的,用{
开头,以}
结束。
像if
语句一样,你需要提供一个条件来判断是否继续,但是要注意在循环过程中条件需要改变。看一下下面的代码:
<?php
while(1 == 1){
// do stuff
}
?>
1是常量,而且永远和1是相等的,也就是说,由于条件一直为真,这个循环将永远进行下去,同时也将很快地消耗你的系统资源。即便如此,无限循环在某些情况下仍然是有用的,我们稍后讨论。
while
循环通常用在我们不知道具体要循环多少次的情况当中,例如:
<?php
while(there are still rows to read from a database) {
read in row;
move to the next to row;
}
?>
更常用的一种循环方式是for
循环,比while
循环稍微复杂一点。for
循环有三部分:变量声明、循环条件和循环动作,一般使用一个变量来记录循环的次数。变量声明部分是用来声明记录循环次数的变量的,循环条件是用来检查循环变量是否满足条件的,循环动作是每次循环结束需要对循环变量执行的操作。
下面是一个for循环的例子:
<?php
for ($i = 1; $i < 10; $i = $i + 1) {
print "Number $i\n";
}
?>
如上所示,for
循环有三个部分,用分号间隔。首先,我们将1赋值给变量$i
,然后检查$i
是不是小于10,当$i
小于10的时候才会执行循环。最后,在每次循环结束的时候,$i
都会被加上1。for
循环就是由这三部分组成的。
上面这段代码的作用是从1数到10并输出。注意并没有输出Number 10
,是因为要求$i
小于10而不是等于10。下面是输出:
Number 1
Number 2
Number 3
Number 4
Number 5
Number 6
Number 7
Number 8
Number 9
代码当中的\n
是用来输出换行的,如果是Windows系统的话,你应该用\r\n
。以后会进行解释,现在无须担心。
第三种也是最不重要的一种循环方式是do - while
循环。同while
循环的唯一区别就是它至少会循环一次。看一下下面的代码:
<?php
$foo = 12;
while ($foo < 10) {
do_bar();
}
?>
在这种情况下,do_bar()
函数永远不会执行,因为$foo
的初始值就大于10了。然而,如果换用do - while
循环的话:
<?php
$foo = 12;
do {
do_bar();
} while ($foo < 10);
?>
这样,在$foo
同10进行比较大小之前,已经执行过一次do_bar()
了;又由于条件不满足,do_bar()
所在的循环将不会再次执行。do - while
同while
的区别就是前者会至少执行一次。
最后一种循环方式是foreach
循环,主要用于数组数据的循环。由于数组的工作方式比较特别,这种循环方式也将放到数组一章中进行详细讲解。