在您编写代码时,经常需要反复运行同一代码块。我们可以使用循环来执行这样的任务,而不是在脚本中添加若干几乎相等的代码行。
在 PHP 中,我们有以下循环语句:
- while - 只要指定条件为真,则循环代码块
- do…while - 先执行一次代码块,然后只要指定条件为真则重复循环
- for - 循环代码块指定次数
- foreach - 遍历数组中的每个元素并循环代码块
1. while 循环
只要指定的条件为真,while 循环就会执行代码块。
while (条件为真) {
要执行的代码;
}
1
2
3
2
3
下例首先把变量 $a
设置为 1($a=1
)。然后执行 while 循环,只要 $a
小于或等于 5。循环每运行一次,$a
将递增 1:
<?php
$a=1;
while($a<=5) {
echo "当前的值是:$a <br>";
$a++;
}
?>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
输出:
当前的值是:1 <br>
当前的值是:2 <br>
当前的值是:3 <br>
当前的值是:4 <br>
当前的值是:5 <br>
1
2
3
4
5
2
3
4
5
2. do…while 循环
do…while 循环首先会执行一次代码块,然后检查条件,如果指定条件为真,则重复循环。
do {
要执行的代码;
} while (条件为真);
1
2
3
2
3
下面的例子首先把变量 $b
设置为 1($b=1
)。然后,do while 循环输出一段字符串,然后对变量 $b
递增 1。随后对条件进行检查($b
是否小于或等于 5)。只要 $b
小于或等于 5,循环将会继续运行:
<?php
$b=1;
do {
echo "当前的值是:$b <br>";
$b++;
} while ($b<=5);
?>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
输出
当前的值是:1
当前的值是:2
当前的值是:3
当前的值是:4
当前的值是:5
1
2
3
4
5
2
3
4
5
请注意,do while 循环只在执行循环内的语句之后才对条件进行测试。这意味着 do while 循环至少会执行一次语句,即使条件测试在第一次就失败了。
下面的例子把 $b
设置为 6,然后运行循环,随后对条件进行检查 :
<?php
$b=6;
do {
echo "当前的值是:$b <br>";
$b++;
} while ($b<=5);
?>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
输出:
当前的值是:6
1
3. for 循环
如果您已经提前确定脚本运行的次数,可以使用 for 循环。
for (init counter; test counter; increment counter) {
code to be executed;
}
1
2
3
2
3
参数:
- init counter:初始化循环计数器的值
- test counter:: 评估每个循环迭代。如果值为 TRUE,继续循环。如果它的值为 FALSE,循环结束。
- increment counter:增加循环计数器的值
下面的例子显示了从 0 到 10 的数字:
</iframe>
实例
<?php
for ($x=0; $x<=10; $x++) {
echo "number is : $x <br>";
}
?>
1
2
3
4
5
2
3
4
5
输出:
number is : 0
number is : 1
number is : 2
number is : 3
number is : 4
number is : 5
number is : 6
number is : 7
number is : 8
number is : 9
number is : 10
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
4. foreach 循环
foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
foreach ($array as $value) {
code to be executed;
}
1
2
3
2
3
每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。
下面的例子演示的循环将输出给定数组($colors)的值:
<?php
$colors = array("red","green","blue","yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>
1
2
3
4
5
6
7
2
3
4
5
6
7
输出:
red
green
blue
yellow
1
2
3
4
2
3
4