ZetCode

PHP for循环

最后修改于 2025 年 4 月 16 日

PHP for 循环是重复执行代码的基本控制结构。当您确切知道需要迭代多少次时,它非常理想。for 循环将初始化、条件和增量组合在一个紧凑的语法中。

基本定义

for 循环重复执行一段代码,直到指定的条件评估为 false。它由三个表达式组成,这些表达式由分号分隔,位于括号内。

第一个表达式初始化循环计数器。第二个定义继续条件。第三个在每次迭代后更新计数器。

语法:for (init; condition; increment) { code }。所有三个表达式都是可选的,但分号必须保留。循环继续,直到条件评估为 true。

基本 for 循环

此示例演示了一个简单的 for 循环,该循环从 1 数到 5。

basic_for.php
<?php

declare(strict_types=1);

for ($i = 1; $i <= 5; $i++) {
    echo "Iteration: $i<br>";
}

代码将 $i 初始化为 1。当 $i 小于或等于 5 时,它会继续。每次迭代后,$i 递增 1。循环体执行 5 次,打印当前的迭代次数。

倒数

此示例显示了一个 for 循环,从 10 倒数到 1。

countdown.php
<?php

declare(strict_types=1);

for ($i = 10; $i >= 1; $i--) {
    echo "$i...<br>";
}
echo "Liftoff!";

循环从 10 开始,并持续到 $i 大于或等于 1 为止。递减运算符 ($i--) 每次迭代都会减少计数器。这创建了一个经典的倒数序列,以一条消息结束。

按值步进

此示例演示了在 for 循环中使用不同的步进值。

step_values.php
<?php

declare(strict_types=1);

// Count even numbers from 0 to 10
for ($i = 0; $i <= 10; $i += 2) {
    echo "$i ";
}

echo "<br>";

// Count by fives from 5 to 25
for ($i = 5; $i <= 25; $i += 5) {
    echo "$i ";
}

第一个循环通过每次迭代步进 2 来计算偶数。第二个以 5 的增量进行计数。增量表达式可以使用任何有效的算术运算。这提供了灵活的迭代控制。

嵌套 for 循环

此示例显示了如何嵌套 for 循环以创建乘法表。

nested_for.php
<?php

declare(strict_types=1);

for ($i = 1; $i <= 5; $i++) {
    for ($j = 1; $j <= 5; $j++) {
        echo str_pad($i * $j, 4, " ", STR_PAD_LEFT);
    }
    echo "<br>";
}

外循环控制行,而内循环处理列。每次迭代都会将当前的行号和列号相乘。str_pad 格式化输出以进行对齐。嵌套循环对于基于网格的操作非常强大。

使用 break 控制循环

此示例演示了如何使用 break 提前退出循环。

break_loop.php
<?php

declare(strict_types=1);

for ($i = 1; $i <= 100; $i++) {
    echo "$i ";
    if ($i % 13 == 0) {
        echo "<br>Found a multiple of 13!";
        break;
    }
}

循环计数到 100,但在找到 13 的第一个倍数时停止。break 语句立即终止循环执行。这对于搜索操作很有用,您可以在找到匹配项后停止。

使用 continue 控制循环

此示例显示了如何使用 continue 跳过特定的迭代。

continue_loop.php
<?php

declare(strict_types=1);

for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 == 0) {
        continue;
    }
    echo "$i is odd<br>";
}

循环仅打印 1 到 10 之间的奇数。当 $i 为偶数时,continue 跳过迭代的其余部分。然后循环继续到下一个值。这会过滤掉不需要的值,而无需退出。

使用 for 的无限循环

此示例演示了如何使用 for 语法创建无限循环。

infinite_for.php
<?php

declare(strict_types=1);

$count = 0;
for (;;) {
    echo "Loop iteration $count<br>";
    $count++;
    
    if ($count >= 5) {
        break;
    }
}

通过省略所有三个表达式,我们创建了一个无限循环。代码使用手动计数器和 break 条件。这种模式有时用于事件循环或直到满足外部条件。

最佳实践

来源

PHP for 循环文档

本教程介绍了 PHP for 循环,并提供了实际示例,展示了基本用法、控制流程和各种迭代模式。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。到目前为止,我撰写了 1,400 多篇文章和 8 本电子书。我拥有十多年教授编程的经验。

列出 所有 PHP 教程