continue
,break
,exit
三者在某些上下文环境中,使用效果一致,但是还是有区分的.
官方定义
exit
:输出一个消息并且退出当前脚本
continue
:在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。
break
:结束当前 for,foreach,while,do-while 或者 switch 结构的执行。
简单示例1:exit
$ar = array (1,2,3,4);
foreach ($ar as $key=>$val) {
if ($val ==3) {
exit;
}
echo $val,'<br />';
}
echo 'hello';
结果:
1
2
exit,直接终结了脚本的执行,不单单只是循环结构
简单示例2:continue
$ar = array (1,2,3,4);
foreach ($ar as $key=>$val) {
if ($val ==3) {
continue;
}
echo $val,'<br />';
}
echo 'hello';
结果:
1
2
4
hello
continue,只是跳出本次循环,如果循环还有下一次则会进入到下一次循环中,脚本继续执行
简单示例3:break
$ar = array (1,2,3,4);
foreach ($ar as $key=>$val) {
if ($val ==3) {
break;
}
echo $val,'<br />';
}
echo 'hello';
结果:
1
2
hello
break,跳出了循环结构,脚本继续执行.
break控制跳出几层循环结构示例
$arr = [[1,2,3],['a','b','c']];
for ($i=0;$i<2;$i++) {
foreach ($arr[$i] as $k=>$v) {
if ($v == 1) {
break 1; //控制跳出几层循环,值不能为0,1表示只是跳出当层循环 foreach层,2表示跳出上一层循环 for层
}
echo $v,'<br/>';
}
}
结果:
a
b
c
如果是
$arr = [[1,2,3],['a','b','c']];
for ($i=0;$i<2;$i++) {
foreach ($arr[$i] as $k=>$v) {
if ($v == 1) {
break 2;
}
echo $v,'<br/>';
}
}
输出为空,两层循环都终结. .