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);
?>

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