前言
我们在介绍while和for循环的时候,都是通过循环语句本身提供的条件表达式来指定循环的次数,或者是遇到特殊情况要停止循环。如果想在循环体执行过程中终止循环,或是跳过一些循环继续执行其他循环,就需要使用到特殊的流程控制语句。如:break语句,continue语句,exit语句。接着下面就来详细了解PHP中break语句的用法和相关概念。
break语句
在PHP中,break语句是用来中断当前循环或者中断分支结构的,或和 label 一起使用,可中断相关联的语句。break可以结束当前for,foreach,while,do...while或者switch分支结构的执行。其语法格式如下:
break [label];
可选的 label 参数指定断点处语句的标签。
下图为break在不同循环结构中的使用格式:
编程实践
下面以for为例来说明break语句的基本使用方法及其功能。以输出九九乘法表为例,尝试在双层嵌套for循环中使用break语句,当外层for循环执行第5次时使用break退出循环,层for循环也使用break退出循环。其代码如下:
<?php
for($i=9;$i>=1;$i--){
if($i<5){
break;
}
for($j=$i;$j>=1;$j--){
if($i<5){
break;
}
echo "$j x $i = " . ($j*$i) . " ";
}
echo "<br>";
}
执行结果如下图所示:
在循环中使用break流程大致如下:
使用break语句可以将深埋在嵌套循环中的语句退出到指定层数或直接退出到最外层。break通过接受一个可选的数字参数来决定跳出几重循环语句或是几重switch语句,下面我们就来看看PHP中break语句在while和switch中的使用:
<?php
$i = 0;
while(++$i){
switch($i){
case 6:
echo "变量为6时,只退出switch语句<br>";
break 1;
case 12:
echo "变量\$i为12时,不仅退出switch同时退出while循环<br>";
break 2;
}
}
执行结果如下:
上面的代码是外层一个while语句循环内嵌一层switch语句,第7行代码中 "break 1",是使用break退出1层,即是只退出switch语句,第10行代码中"break 2",使用break退出两层。即是退出switch的同时退出while。
在PHP中foreach主要是用于数组的遍历,foreach也是我们实际开发中最常用到的一种循环结构。foreach也叫增强for循环,可以说是foreach的一个特殊简化版;foreach有两种语法:
第一种:遍历给定的 数组语句 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元):
foreach (array_expression as $value)
第二种:同上,同时当前单元的键名也会在每次循环中被赋给变量 $key
foreach (array_expression as $key => $value)
接着我们继续看看break在foreach中的使用:当遍历到数组中的值等于5时,退出循环。
<?php
$arr = array(1,2,3,4,5,6,7,8,9);
foreach($arr as $v){
if($v == 5)
{
break;
}
echo $v."<br>";
}
执行结果:
总结
在实际的使用中,我们不会平白无故直接退出循环,一般结合if判断是否达到某个条件才会退出当前循环。break在PHP的使用跟在其他编程语言中的用法基本是一样的,PHP中 break 语句有以下两种用法:
- 当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句
- 它可用于终止 switch 语句中的一个 case
如果你使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。