ZetCode

PHP continue 语句

最后修改于 2025 年 4 月 16 日

PHP 的 continue 语句用于在循环中跳过当前迭代并继续下一个迭代。它提供对循环执行流程的控制。当遇到时,它会立即跳转到下一个迭代。

基本定义

continue 语句跳过当前循环迭代中剩余的代码。它将执行移至 for、while、do-while 和 foreach 循环中的下一个迭代。它对于跳过特定值或条件很有用。

语法:continue;continue n;,其中 n 指定要跳过多少个嵌套循环。可选的数字参数是在 PHP 5.4 中添加的。如果没有它,continue 只会影响最内层的循环。

continue 语句与 break 不同,后者会完全退出循环。Continue 仅跳过一个迭代,同时保持循环运行。两者都是循环中的强大流程控制工具。

for 循环中的基本 continue

此示例演示了使用 continue 跳过 for 循环中的偶数。

basic_continue.php
<?php

declare(strict_types=1);

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

代码打印 1 到 10 之间的奇数。当 $i 为偶数时,continue 跳过 echo 语句。循环继续下一个迭代。输出:1 3 5 7 9。

while 循环中的 continue

此示例显示了 continue 跳过 while 循环中的特定值。

while_continue.php
<?php

declare(strict_types=1);

$count = 0;
while ($count < 5) {
    $count++;
    if ($count == 3) {
        continue;
    }
    echo "Count: $count\n";
}

循环运行,只要 $count 小于 5。当 $count 等于 3 时,continue 跳过 echo 语句。循环继续 $count = 4。输出显示了除 3 之外的所有数字。

foreach 循环中的 continue

此示例演示了基于条件跳过数组元素。

foreach_continue.php
<?php

declare(strict_types=1);

$fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry'];

foreach ($fruits as $fruit) {
    if (strlen($fruit) > 5) {
        continue;
    }
    echo "$fruit ";
}

循环处理数组中的每个水果。跳过名称长度超过 5 个字符的水果。仅打印较短的水果名称。输出:apple banana date。

带可选参数的 continue

此示例显示了使用带有数字参数的 continue 来跳过外部循环。

continue_n.php
<?php

declare(strict_types=1);

for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($i == $j) {
            continue 2;
        }
        echo "$i,$j ";
    }
}

嵌套循环通常会产生 9 种组合。当 $i 等于 $j 时,continue 2 跳过两个循环的当前迭代。输出仅显示不相等的对:1,2 1,3 2,1 2,3 3,1 3,2。

do-while 循环中的 continue

此示例演示了 do-while 循环结构中的 continue 行为。

dowhile_continue.php
<?php

declare(strict_types=1);

$num = 0;
do {
    $num++;
    if ($num % 3 == 0) {
        continue;
    }
    echo "$num ";
} while ($num < 10);

循环打印从 1 到 10 的数字,跳过 3 的倍数。与 while 不同,do-while 始终至少执行一次。Continue 跳转到条件检查。输出:1 2 4 5 7 8 10。

switch 中的 continue

此示例显示了在循环内的 switch 语句中 continue 的行为。

switch_continue.php
<?php

declare(strict_types=1);

for ($i = 1; $i <= 5; $i++) {
    switch ($i) {
        case 2:
            echo "Two ";
            continue 2;
        case 4:
            echo "Four ";
            break;
        default:
            echo "$i ";
    }
}

循环从 1 运行到 5。当 $i 为 2 时,continue 2 跳过 switch 和循环。对于 $i=4,break 仅退出 switch。输出:1 Two 3 Four 5。

实际示例:过滤数据

此示例显示了 continue 在过滤无效数据方面的实际应用。

filter_data.php
<?php

declare(strict_types=1);

$users = [
    ['name' => 'Alice', 'active' => true],
    ['name' => 'Bob', 'active' => false],
    ['name' => 'Charlie', 'active' => true],
    ['name' => 'Dave', 'active' => false]
];

foreach ($users as $user) {
    if (!$user['active']) {
        continue;
    }
    echo "Active user: {$user['name']}\n";
}

代码处理用户数组。仅处理活跃用户;跳过非活跃用户。这演示了实际的数据过滤。输出仅显示 Alice 和 Charlie。

最佳实践

来源

PHP continue 文档

本教程介绍了 PHP continue 语句,并提供了实际示例,展示了它在不同循环类型和场景中的用法。

作者

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

列出 所有 PHP 教程