在本 PHP 教程中,您将学习有关 PHP 条件语句的所有知识。我们将详细讨论 break 和 continue 语句。
PHP 中的 break 语句用于终止程序的当前流程。break 语句主要用于根据指定条件中断 for、while、do…while、foreach 和 switch 语句的执行。
语法
jump statement;
break;

在循环中使用 break 语句时,它会在满足 break 语句的条件时终止循环的执行,即使它不满足循环条件。
for ($i = 1; $i <= 10; $i++) {
echo "$i ";
if ($i == 3) {
break;
}
}
输出
1 2 3
在上面的示例中,我们可以看到循环条件是使变量“i”的值从 1 迭代到 10。在循环块中,我们打印变量“i”的值,并检查条件“i == 3”,在 if 语句块中,我们使用 break 语句。根据它,如果满足条件,循环应该被终止。我们可以看到循环应该迭代直到变量“i”的值变为“10”,并且通过使用 break 语句,它不满足该条件并在满足 break 条件时退出循环。
同样,当我们在内层循环中使用 break 语句时,它只会终止内层循环,而不会影响外层循环。
for ($i = 1; $i <= 3; $i++) {
for ($j = 1; $j <= 5; $j++) {
echo "$i * $j = ". $i * $j. "\n";
if ($j == 3) {
break;
}
}
}
输出
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
在上面的示例中,我们可以看到循环条件是使变量“i”的值从 1 迭代到 3,同样内层循环应使变量“j”的值从 1 迭代到 5。在循环块中,我们打印变量“i”和“j”的乘积值,根据循环条件,外层循环应该迭代 3 次,内层循环应该迭代 5 次。但在上述情况下,我们可以看到在内层循环块中,我们有条件“j == 3”,并且在该条件块中使用 break 语句,因此内层循环不会迭代 5 次,我们还可以看到 break 语句没有影响外层循环,外层循环完成了其整个迭代。
尽管 break 语句在 switch 语句中是可选的,但通常建议使用它。如果我们不在 **switch** 语句中使用 **break** 语句,即使满足了条件,它也会继续检查所有条件。而在另一种情况下,如果我们使用 break 语句,当条件满足时,它将直接退出 **switch** 语句,即使还有更多条件。
$ch = 3;
switch ($ch)
{
case 1:
echo "Monday ";
case 2:
echo "Tuesday ";
case 3:
echo "Wednesday ";
case 4:
echo "Thursday ";
case 5:
echo "Friday ";
case 6:
echo "Saturday ";
case 7:
echo "Sunday ";
default:
echo "Wrong Choice ";
}
输出
Wednesday Thursday Friday Saturday Sunday Wrong Choice
<?php
$ch = 3;
switch ($ch)
{
case 1:
echo "Monday";
break;
case 2:
echo "Tuesday";
break;
case 3:
echo "Wednesday";
break;
case 4:
echo "Thursday";
break;
case 5:
echo "Friday";
break;
case 6:
echo "Saturday";
break;
case 7:
echo "Sunday";
break;
default:
echo "Wrong Choice";
break;
}
输出
Wednesday
上面的示例是打印一周中的某一天,我们可以看到当不使用 break 语句时,满足条件后的所有 case 都会被执行,而当使用 break 语句时,它只会执行条件变为 true 的 case。
PHP 中的 continue 语句用于在满足条件时通过跳过当前流程来迭代循环。当我们想进入循环或 switch 控制结构的下一个迭代时,我们使用 continue 语句。continue 语句主要用于根据指定条件中断 for、while、do…while、foreach 和 switch 语句的执行。
语法
jump-statement;
continue;

在循环中使用 continue 语句时,当它满足 continue 语句的条件时,它会跳过当前迭代的执行,并继续循环的其余流程。
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i == 3) {
continue;
}
echo "$i ";
}
输出
1 2 4 5 6 7 8 9 10
在上面的示例中,我们可以看到循环条件是使变量“i”的值从 1 迭代到 10。在块中,我们检查条件“i == 3”,当它满足时,我们使用 continue 语句,在条件块之后,我们打印变量“i”的值。通过使用 continue 语句,我们跳过了当前迭代的流程,并执行了循环的其余迭代。正如我们所说,在输出中打印值时,我们可以看到它跳过了“3”。
在内层循环中使用 continue 语句
同样,当我们在内层循环中使用 continue 语句时,它只会跳过剩余的代码并执行下一个迭代。
for ($i = 1; $i <= 3; $i++) {
for ($j = 1; $j <= 3; $j++) {
if ($i == $j) {
continue;
}
echo "$i $j \n";
}
}
输出
1 2 1 3 2 1 2 3 3 1 3 2
在上面的示例中,我们可以看到循环条件是使变量“i”的值从 1 迭代到 3,同样内层循环应使变量“j”的值从 1 迭代到 3。在循环块中,我们打印变量“i”和“j”的值,根据循环条件,外层循环应该迭代 3 次,内层循环应该迭代 3 次。但在上述情况下,我们可以看到在内层循环块中,我们有条件“i == j”,并且在该条件块中使用 continue 语句,因此当变量“i”和“j”的值相等时,程序将跳过打印。