PHP 循环

在本教程中,您将学习如何使用PHP中的循环来重复一系列操作。

PHP中不同类型的循环

只要满足特定条件,循环就可以一次又一次地执行相同的代码块。循环的基本思想是使程序中的重复任务自动化,以节省时间和精力。PHP支持四种不同类型的循环。

  • while  —  只要指定的条件求值为true,就循环遍历代码块。

  • do…while  —  执行一次代码块,然后评估条件。如果条件为true,则只要指定条件为true,就重复该语句。

  • for  —   遍历代码块,直到计数器达到指定的数字。

  • foreach  — 遍历数组中每个元素的代码块。

您还将在本章末尾学习如何使用foreach()循环遍历数组的值。foreach()循环专门用于数组。

PHP的同时循环

while只要while语句中指定的条件评估为true,该语句将循环遍历代码块。

while(条件){ 
    //要执行的代码
}

以下示例定义了一个以$i=1开头的循环。只要$i小于或等于3 ,循环将继续运行。每次循环运行,循环将$i增加1:

<?php
$i = 1;
while($i <= 3){
    $i++;
    echo "这个数字是 " . $i . "<br>";
}
?>
测试看看‹/›

PHP do…while 循环

do-while 循环是while循环的一种变体,它在每次循环迭代结束时评估条件。 通过do-while循环,代码块执行一次,然后对条件进行评估,如果条件为true,则只要指定的条件评估为true,就重复该语句。

do {
    //要执行的代码
}
while(条件);

下面的示例定义了一个以$i=1开始的循环。然后它将$i加1,并打印输出。 然后计算条件,只要$i小于或等于3,循环就会继续运行。

<?php
$i = 1;
do{
    $i++;
    echo "这个数字是 " . $i . "<br>";
}
while($i <= 3);
?>
测试看看‹/›

while 和 do…while 循环之间的区别

while 循环与do-while 循环有一个重要的不同之处:while循环在每次循环迭代的开始测试要评估的条件,因此,如果条件表达式的计算结果为false,则永远不会执行该循环 。

另一方面,对于do-while循环,即使条件表达式为false,该循环也将始终执行一次,因为条件是在循环迭代的末尾而不是开始时求值的。

PHP for 循环

for 只要满足特定条件,循环就会重复执行一段代码。它通常用于执行代码块一定次数。

for(initialization;condition;increment){ 
    //要执行的代码
}

for循环的参数具有以下含义:

  • initialization — 它用于初始化计数器变量,并在第一次执行循环体之前无条件地计算一次。

  • condition — 在每次迭代的开始,条件被评估。如果计算结果为true,则继续循环并执行嵌套语句。如果计算结果为false,则循环的执行结束。

  • increment — 它用新值更新循环计数器。它在每次迭代结束时进行计算。

下面的示例定义了一个以$i=1开始的循环。该循环将一直持续到$i小于或等于3。每次循环运行时,变量$i都会递增1:

<?php
for($i=1; $i<=3; $i++){
    echo "这个数字是 " . $i . "<br>";
}
?>
测试看看‹/›

PHP foreach 循环

foreach循环用于遍历数组。

foreach($array as $value){ 
    //要执行的代码
}

下面的示例演示一个循环,该循环将打印给定数组的值:

<?php
$colors = array("Red", "Green", "Blue");
 
//遍历颜色数组
foreach($colors as $value){
    echo $value . "<br>";
}
?>
测试看看‹/›

foreach 循环还有另外一种语法,它是第一种的扩展。

foreach($array as $key => $value){ 
    //要执行的代码
}
<?php
$superhero = array(
    "name" => "Peter Parker",
    "email" => "peterparker@mail.com",
    "age" => 18
);
 
//遍历$superhero数组
foreach($superhero as $key => $value){
    echo $key . " : " . $value . "<br>";
}
?>
测试看看‹/›