ZetCode

PHP break 语句

最后修改于 2025 年 4 月 16 日

PHP break 关键字用于提前终止循环或 switch 语句的执行。 它提供对迭代结构内程序流的控制。 了解 break 对于编写高效的 PHP 代码至关重要。

基本定义

break 语句立即退出当前循环或 switch 结构。 遇到时,它会停止进一步的迭代并将控制权转移到终止结构之后的语句。

在循环中,break 通常与条件语句一起使用,以便在满足特定条件时退出。 在 switch 语句中,break 可防止执行后续 case。 如果没有 break,switch 将执行所有后续 case。

语法:break;break levels; 其中 levels 是一个可选的数字参数,用于指定要跳出的嵌套结构的层数。 默认值为 1。

for 循环中的基本 break

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

basic_break.php
<?php

declare(strict_types=1);

for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        break;
    }
    echo "$i ";
}

循环从 1 运行到 10,但在 $i 等于 5 时中断。 仅打印数字 1 到 4。 break 语句完全停止循环,而不仅仅是当前迭代。 这对于提前终止很有用。

while 循环中的 break

此示例显示了在满足条件时如何在 while 循环中使用 break 退出。

while_break.php
<?php

declare(strict_types=1);

$count = 0;

while (true) {
    $count++;
    echo "Count: $count\n";
    
    if ($count >= 3) {
        break;
    }
}

while 循环通常会无限期地运行(true 条件)。 break 语句在 count 达到 3 时退出。 这种模式对于需要运行直到发生特定条件的循环很常见。 break 提供了退出方式。

foreach 循环中的 break

此示例演示了如何使用 break 停止遍历数组。

foreach_break.php
<?php

declare(strict_types=1);

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

foreach ($fruits as $fruit) {
    if ($fruit == 'cherry') {
        break;
    }
    echo "$fruit ";
}

foreach 循环处理每个数组元素,直到找到“cherry”。 break 语句在那个点停止循环。 仅打印“apple”和“banana”。 这对于搜索数组很有用。

switch 语句中的 break

此示例显示了 break 在 switch 语句中的基本用法。

switch_break.php
<?php

declare(strict_types=1);

$day = 'Wednesday';

switch ($day) {
    case 'Monday':
        echo "Start of work week";
        break;
    case 'Wednesday':
        echo "Midweek";
        break;
    case 'Friday':
        echo "Weekend is coming";
        break;
    default:
        echo "Some other day";
}

switch 语句中的每个 case 都以 break 结尾,以防止 fall-through。 如果没有 break,则会继续执行下一个 case。 break 确保仅运行匹配 case 的代码。 这是标准的 switch 行为。

带有嵌套循环的 break

此示例演示了如何使用 break 退出多个嵌套循环。

nested_break.php
<?php

declare(strict_types=1);

for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        echo "$i-$j ";
        
        if ($i == 2 && $j == 2) {
            break 2;
        }
    }
    echo "\n";
}

当满足条件时,break 2 语句退出内部和外部循环。 如果没有数字参数,则只跳出内部循环。 这显示了如何控制嵌套循环终止。 输出在 "2-2" 处停止。

do-while 循环中的 break

此示例说明了 break 在 do-while 循环结构中的用法。

dowhile_break.php
<?php

declare(strict_types=1);

$num = 0;

do {
    $num++;
    echo "Number: $num\n";
    
    if ($num == 4) {
        break;
    }
} while ($num < 10);

do-while 循环通常会运行到 $num 达到 10。 break 语句导致在 num 等于 4 时提前退出。这表明 break 在 do-while 中的工作方式与其他循环一样。 每次迭代后都会检查条件。

带有可选层数的 break

此高级示例显示了具有不同数字层值的 break。

break_levels.php
<?php

declare(strict_types=1);

for ($i = 1; $i <= 3; $i++) {
    echo "Outer: $i\n";
    
    for ($j = 1; $j <= 3; $j++) {
        echo " Inner: $j\n";
        
        if ($j == 2) {
            break 1; // Same as just break
        }
        
        if ($i == 3 && $j == 1) {
            break 2; // Exit both loops
        }
    }
}

第一个 break 仅退出内部循环(级别 1)。 当满足特定条件时,第二个 break 退出两个循环(级别 2)。 这演示了对嵌套循环终止的精确控制。 数字参数指定要跳出的层数。

最佳实践

来源

PHP break 文档

本教程通过实际示例介绍了 PHP break 语句,展示了它在循环和 switch 语句中的各种情况下的用法。

作者

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

列出 所有 PHP 教程