PHP中的循环结构大致有for循环,while循环,do{} while 循环以及foreach循环几种,不管哪种循环中,在PHP中跳出循环大致有这么几种方式:代码:
$i = 1;
while (true) { // 这里看上去这个循环会一直执行if ($i==2) {// 2跳过不显示$i++;continue;} else if ($i==5) {// 但到这里$i=5就跳出循循环了break;} else {echo $i . '
';}$i++;
}
exit;
echo '这里不输出';
?>
结果:
1
3
4
continue
continue 是用来用在循环结构中,控制程序放弃本次循环continue语句之后的代码并转而进行下一次循环。continue本身并不跳出循环结构,只是放弃这一次循环。如果在非循环结构中(例如if语句中,switch语句中)使用continue,程序将会出错。例如在下面的这段PHP代码片段中:
for($i &#61; 1;$i <&#61; 100; $i&#43;&#43; ){
if($i % 3 &#61;&#61; 0 || $i % 7 &#61;&#61; 0){
continue;
}
& #160; else{
echo”$i n
”;
}
}
?>
PHP的代码片段的作用是输出100以内&#xff0c;既不能被7整除又不能被3整除的那些自然数&#xff0c;循环中先用if条件语句判断那些能被整除的数&#xff0c;然后执行 continue;语句&#xff0c;就直接进入了下个循环。不会执行下面的输出语句了。break
break是被用在上面所提的各种循环和switch语句中的。他的作用是跳出当前的语法结构&#xff0c;执行下面的语句。break语句可以带一个参数n&#xff0c;表示跳出循环的层数&#xff0c;如果要跳出多重循环的话&#xff0c;可以用n来表示跳出的层数&#xff0c;如果不带参数默认是跳出本重循环。
看下面这个多重循环嵌套的例子&#xff1a;
for($i &#61; 1;$i <&#61; 10; $i&#43;&#43; ){
for($j &#61; 1;$j <&#61; 10;$j&#43;&#43;){
$m &#61; $i * $i &#43; $j * $j;
echo”$m n
”;
if($m <90 || $m > 190) {
break 2;
}
}
}
exit
exit是用来结束程序执行的。可以用在任何地方&#xff0c;本身没有跳出循环的含义。exit可以带一个参数&#xff0c;如果参数是字符串&#xff0c;PHP将会直接把字符串输出&#xff0c;如果参数是integer整形&#xff08;范围是0-254&#xff09;&#xff0c;那个参数将会被作为结束状态使用。
for($i &#61; 1000;$i >&#61; 1 ; $i– ){
if( sqrt($i) >&#61; 29){
echo”$i n
”;
}
else{
exit;
}
}
echo”本行将不会被输出”;
?>
上面这个例子中直接在从循环里结束了代码的运行&#xff0c;这样会导致后面的代码都不会被执行&#xff0c;如果是在一个php web 页面里面&#xff0c;甚至连exit后面的html代码都不会被输出。return
return 语句是用来结束一段代码&#xff0c;并返回一个参数的。可以从一个函数里调用&#xff0c;也可以从一个include()或者require()语句包含的文件里来调用&#xff0c;也可以是在主程序里调用&#xff0c;如果是在函数里调用程序将会马上结束运行并返回参数&#xff0c;如果是include()或者require()语句包含的文件中被调用&#xff0c;程序执行将会马上返回到调用该文件的程序&#xff0c;而返回值将作为include()或者require()的返回值。而如果是在主程序中调用&#xff0c;那么主程序将会马上停止执行
for($i &#61; 1000;$i >&#61; 1 ; $i– ){
if( sqrt($i) >&#61; 29){
echo”$i n
”;
}
else{
return;
}
}
echo”本行将不会被输出”;
?>
这里的例子和上面使用exit的效果是一样的。
在循环结束条件&#xff0c;自然跳出
这个当然是最好理解了&#xff0c;当循环满足循环临界条件时就是自己退出。
以上是PHP中跳出循环的几种方式的简单总结。
以上内容希望帮助到大家&#xff0c;很多PHPer在进阶的时候总会遇到一些问题和瓶颈&#xff0c;业务代码写多了没有方向感&#xff0c;不知道该从那里入手去提升&#xff0c;对此我整理了一些资料&#xff0c;包括但不限于&#xff1a;分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6&#xff0c;laravel&#xff0c;YII2&#xff0c;Redis&#xff0c;Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家&#xff0c;需要请戳这里链接 或者关注咱们下面的专栏
PHP大神进阶zhuanlan.zhihu.com