解析PHP跳出循环的方法 以及continue、break、exit的区别介绍
HP中的循环结构大致有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 它在循环结构中使用,其中控制程序在循环连续语句结束后放弃代码,并将其转换到下一个循环。继续本身不会跳出循环结构,而是放弃这个循环。如果继续在非循环结构中使用(例如,在if语句中,在切换语句中),程序将出错。
例如在下面的这段PHP代码片段中:
复制代码 代码如下:
for($i = 1;$i <= 100; $i++ ){
if($i % 3 == 0 || $i % 7 == 0){
continue;
}
& #160; else{
echo”$i \n
”;
}
}
?>
PHP代码片段的作用是输出小于100的自然数,不能除以7,而不能除以3。在循环中,我们首先使用条件语句来确定可以整除的数字,然后执行继续,句子直接进入下一个循环。将不执行以下输出语句。
打破
在上述各种循环和开关语句中使用断点。他的任务是跳出当前语法结构,执行下列语句。中断语句可以带一个参数n来指示跳出循环的层的数量。如果我们想跳出多个循环,我们可以使用n来指示跳出的层数。如果没有参数,默认值是跳出重循环。
看看下面的多循环嵌套的例子:
复制代码代码如下所示:
for($i = 1;$i <= 10; $i++ ){
for($j = 1;$j <= 10;$j++){
$m = $i * $i + $j * $j;
echo”$m \n
”;
if($m < 90 || $m > 190) {
break 2;
}
}
}
在这里,我们使用中断2跳出双循环。你可以测试一只眼睛,去掉2。结果完全不同。如果不使用参数,跳出来就是这个循环,第一层将继续。
goto
跳转实际上是一个操作符,与其他语言一样,PHP不被鼓励去滥用,而滥用跳转会导致程序可读性严重下降。跳转的功能是将程序从当前位置跳到任何其他位置。跳转本身没有结束循环的功能,但是它的跳转位置的功能使得跳出循环成为可能。但PHP5.3及以上停止去支持,所以你应该尽量避免使用goto。
下面是使用跳转跳出循环的示例
复制代码代码如下所示:
for($i = 1000;$i >= 1 ; $i– ){
if( sqrt($i) <= 29){
goto a;
}
echo “$i”;
}
a:
echo” this is the end”;
在这个例子中,跳转是用来跳出循环的。此示例用于检测大于29的这些数字的平方根的不到1000。
出口
退出用于结束程序的执行。它可以在任何地方使用,而且它不会跳出循环本身的意义。退出可以带参数。如果参数是字符串,PHP将直接输出字符串。如果参数是整数整形(范围0-254),该参数将作为最终状态。
复制代码代码如下所示:
for($i = 1000;$i >= 1 ; $i– ){
if( sqrt($i) >= 29){
echo”$i \n
”;
}
else{
exit;
}
}
echo”本行将不会被输出”;
?>
在上面的示例中,代码的操作是直接从循环完成的,这将导致后面的代码执行。如果是在PHP网页中,甚至退出后的HTML代码也不会导出。
返回
返回语句用于结束代码的一部分并返回一个参数。你可以从一个函数调用,但也从一个包括(需要)或()语句包含的文件调用,也可以在主程序中调用,如果是在函数中调用程序将立即结束操作和返回参数,包括(如果需要)或()语句包含的文件称,该计划的执行将立即返回调用该文件,并返回值将包括()或要求()返回值。如果在主程序中调用它,主程序将立即停止执行。
复制代码代码如下所示:
for($i = 1000;$i >= 1 ; $i– ){
if( sqrt($i) >= 29){
echo”$i \n
”;
}
else{
return;
}
}
echo”本行将不会被输出”;
?>