PHP中怎样跳出循环,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
方法1:使用continue语句
continue语句的作用是跳出本次循环,接着执行下一次循环(放弃continue语句之后的代码并进行下一次循环)。
下面我们通过代码示例来看看。
示例1:输出1~10 之间的所有偶数(偶数能被2整除)
<?php for ($i = 1; $i <= 10; $i++) { if($i % 2 != 0) { continue; } echo $i.' <br>'; } ?>
分析:
for ($i = 1; $i <= 10; $i++){}
语句可以循环得出1~10 之间的所有数字
if($i % 2 != 0)
语句用于判断$i
的值能整除2,不能整除则()
中值为true,则执行continue;
语句。
在循环体中,使用if($i % 2 != 0)
语句进行判断,如果$i的值能整除2就使用“echo $i
”输出;如果$i的值不能整除2,则触发continue;
语句,跳出本次循环(不进行输出),执行下一次循环。
输出结果:
2 4 6 8 10
方法2:使用break语句
break语句用于跳出当前的语法结构,可以终止循环体的代码并立即跳出当前的循环,执行循环之后的代码。
break和continue的不同点是:continue语句只是结束本次循环,而 break 语句会终止整个循环的执行。
沿用上面的示例1中代码,将continue;
换成break;
,会输出什么?
<?php for ($i = 1; $i <= 10; $i++) { if($i % 2 != 0) { break; } echo $i.' <br>'; } ?>
答案是:什么也不输出。为什么会这样尼?我们来分析一下:
forx循环一开始,$i=1
,1小于10吗?当然,然后开始执行循环体中的if($i % 2 != 0)
语句;
那么1能整除2吗?显然是不能,因此()
中值为true,则执行if中的“break;”语句,直接跳出整个循环了,根本没有机会执行“echo $i.' <br>'
”语句。
方法3:goto语句
goto 的作用是将程序的执行从当前位置跳转到其他任意位置。该目标位置可以用目标名称加上冒号来标记(例如 name: ),而跳转指令是 goto 之后接上目标位置的标记。
goto本身并没有要结束的循环的作用,但其跳转位置的作用使得其可以作为跳出循环使用。
下面我们通过代码示例来看看。
示例2:输出1~10 之间的所有奇数(奇数不能被2整除)
<?php for ($i = 1; $i <= 10; $i++) { if($i % 2 == 0) { goto a; } echo $i.' <br>'; } a: ?>
输出:
1
goto实际上只是一个操作符,使用有一定限制:跳转的目标位置只能位于同一个文件和作用域内。
goto 操作符仅在 PHP5.3 及以上版本有效。
方法4:die()/exit()语句
exit 和 die 这两个名字指向的是同一个函数。
die()/exit() 的作用:结束程序执行的,可以用在任何地方。
沿用上面的示例3中代码,将goto语句换成die(),看看输出
<?php header("Content-type:text/html;charset=utf-8"); for ($i = 1; $i <= 10; $i++) { if($i % 2 == 0) { die(); } echo $i.' <br>'; } ?>
输出:
1
die()/exit()函数只接受一个参数,可以是一个具体的数值,也可以是一个字符串,还可以不输入任何参数。如果参数是字符串,PHP将会直接把字符串输出,如果参数是integer整形(范围是0-254),那个参数将会被作为结束状态使用。
方法5:return语句
return语句是用来结束一段代码,并返回一个参数的。
沿用上面的示例3中代码,将die()语句换成return语句,看看输出
<?php header("Content-type:text/html;charset=utf-8"); for ($i = 1; $i <= 10; $i++) { if($i % 2 == 0) { return; } echo $i.' <br>'; } ?>
输出:
1
return语句可以在一个函数里调用,也可以从一个include()或者require()语句包含的文件里来调用,也可以是在主程序里调用。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。