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>";
}
?>