PHP 循环
在本教程中,你将学习如何使用 PHP 中的循环重复一系列操作。
PHP 中不同类型的循环
循环用于一次又一次地执行相同的代码块,直到满足某个条件。循环背后的基本思想是自动化程序中的重复任务以节省时间和精力。PHP 支持四种不同类型的循环。
- while - 循环遍历代码块,直到条件评估为 true。
- do … while - 执行一次代码块然后评估条件。如果条件为真,则只要指定的条件为真,就会重复该语句。
- for - 循环遍历代码块,直到计数器达到指定的数字。
- foreach - 循环遍历数组中每个元素的代码块。
在本章的末尾你还将学习如何使用foreach()来循环遍历数组的值。 foreach() 特别与数组循环工作相关。
PHP while 循环
while 语句将遍历一段代码,直到 while 语句中的条件求值为 true。
while (condition){ // Code to be executed }
下面的示例定义了一个以 $i=1 开头的循环。只要 $i 小于或等于 3,循环将继续运行。每次循环运行时,$i 将增加 1:
<?php
$i = 1;
while($i <= 3){
$i++;
echo "The number is " . $i . "<br>";
}
?>
PHP do...while 循环
do-while 循环是在每次循环迭代的结束计算条件的 while 循环变体。使用 do-while 循环执行一次代码块,然后计算条件,如果条件为真,则只要指定的条件求值为真,就重复该语句。
do { // Code to be executed } while (condition);
以下示例定义以 $i=1 开头的循环。然后它将 $i 增加 1,并打印输出。然后评估条件,并且循环将继续运行,只要 $i 小于或等于 3。
do...while 循环示例
<?php
$i = 1;
do{
$i++;
echo "The number is " . $i . "<br>";
}
while($i <= 3);
?>
while 和 do...while 循环之间的区别
while 循环不同于 do-while 的一个重要区别是-一个 while 循环,待评估的条件在每次循环迭代的开始时进行检查,因此,如果条件表达式评估为假,该循环将永远不会被执行。
而 do-while 循环,在另一方面,循环至少被执行一次,即使条件表达式是假的,因为条件是在循环结束后评估,而不是开始的结束评估。
PHP for 循环
for 循环是直到特定条件被满足前循环重复的代码块。它通常用于执行特定次数的代码块。
for (initialization; condition; increment){ // Code to be executed }
for 循环参数具有以下含义:
initialization- 它用于初始化计数器变量,并在第一次执行循环体之前无条件地进行一次计算。condition- 在每次迭代开始时,评估条件。如果计算结果为true,则循环继续并执行嵌套语句。如果计算结果为false,则循环的执行结束。increment- 它使用新值更新循环计数器。它在每次迭代结束时进行评估。
下面的示例定义了一个以 $i=1 开头的循环。循环将持续到 $i 小于或等于 5。 $i 每次循环运行时变量将增加 1:
<?php
for($i=1; $i<=3; $i++){
echo "The number is " . $i . "<br>";
}
?>
PHP foreach 循环
foreach 循环被用于迭代数组。
foreach ($array as $value){ // Code to be executed }
以下示例演示了一个将打印给定数组值的循环:
<?php
$colors = array("Red", "Green", "Blue");
// Loop through colors array
foreach($colors as $value){
echo $value . "<br>";
}
?>
还有一种 foreach 循环语法,它是第一种语法的扩展。
foreach ($array as $key => $value){ // Code to be executed }
<?php
$superhero = array(
"name" => "Peter Parker",
"email" => "peterparker@mail.com",
"age" => 18
);
// Loop through superhero array
foreach($superhero as $key => $value){
echo $key . " : " . $value . "<br>";
}
?>