网站首页 > 基础教程 正文
如果循环条件满足的时候,则程序会一直执行下去。如果需要强制跳出循环,则需要使用跳转语句来完成。PHP8的跳转语句包括break语句、continue语句和goto语句。
1、break语句
break语句的作用是完全终止循环,包括while、do…while、for、switch在内的所有控制语句。
使用break语句来终止一个循环
使用一个while循环,while后面的表达式的值为true,即为一个无限循环。在while程序块中将声明一个随机数变量$a,只有当生成的随机数等于88时,使用break语句跳出循环。代码如下:
<?php
while(true){ // 使用 while 循环
$a = rand(1,99); // 声明一个随机数变量 $a
echo $a . " "; // 输出随机数
if ($a == 66){ // 判断随机数是否等于 66
echo "<p>变量等于66,终止循环";
break; // 如果等于 66,则使用 break 语句跳出循环
}
}
?>
输出结果如下:
13 33 60 26 61 23 84 1 89 86 66
变量等于66,终止循环
注,如果读者自己复制上面代码,测试的话,每次刷新结果是不一样的,我选了一个较短的结果复制上来。
2、continue语句
continue语句的作用没有break语句的作用大,continue语句只能终止本次循环,从而进入下一次循环中,continue语句也可以指定跳出几重循环。
使用continue语句跳出循环
我们输出1-10之中的所有偶数。代码如下:
<?php
for ($i = 1;$i <= 20;$i++){
if($i%2!=0){
continue; // 如果 $i 不是偶数,则跳过本次循环,继续下一次循环
}
echo $i." "; // 输出当前的偶数
}
?>
运行结果如下:
2 4 6 8 10 12 14 16 18 20
3、goto语句
goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用 区分大小写 的目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。
PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。
goto 跳出循环示例代码如下:
<?php
for($i=0,$j=50; $i<100; $i++) {
while($j--) { // 使用while循环递减$j的值
if($j==17) goto end; // 如果$j等于17,则跳转到end标签处
}
}
echo "i = $i";
end:
echo 'j hit 17';
?>
温馨提示:goto语句是一种不推荐的编程实践,应尽量避免使用它,因为它可能导致代码结构混乱并使调试变得困难。这里仅作为示例展示。
到此为止,PHP8的跳转语句包括break语句、continue语句和goto语句就讲解完毕。欢迎你学习《PHP8知识详解》系列教程。
猜你喜欢
- 2024-11-27 php安全编程?python暴力破解,论python的牛逼性
- 2024-11-27 CVE-2024-4577 PHP CGI 远程代码执行漏洞分析
- 2024-11-27 使用VS Code调试PhpStudy环境里的代码
- 2024-11-27 Web安全之URL跳转漏洞
- 2024-11-27 01.linux上安装宝塔部署PHP项目
- 2024-11-27 教程 | 从零开始开发一个PHP留言板(三)——页面制作
- 2024-11-27 WordPress网站被利用xmlrpc.php攻击解决办法
- 2024-11-27 Nginx 反向代理学习及实例笔记
- 2024-11-27 phpMyAdmin使用教程(图文详解)
- 2024-11-27 CentOS8 安装数据库管理工具之phpMyAdmin5.1.1
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)