PHP8的跳转语句-PHP8知识详解

news2024/10/7 16:16:00

 如果循环条件满足的时候,则程序会一直执行下去。如果需要强制跳出循环,则需要使用跳转语句来完成。PHP8的跳转语句包括break语句、continue语句和goto语句。

PHP8的跳转语句

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知识详解》系列教程。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/851230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux umask 详解

1. umask 定义 在 linux 系统中&#xff0c;umask 被定义在 /etc/profile 配置文件中&#xff0c;有一段 shell 脚本对 umask 是这么定义的。在 shell 会话输入命令&#xff1a; $ cat /etc/profile # 查看 /etc/profile 配置文件的内容 if [ $UID -gt 199 ] &&…

Prometheus技术文档-概念

Prometheus是一个开源的项目连接如下&#xff1a; Prometheus首页、文档和下载 - 服务监控系统 - OSCHINA - 中文开源技术交流社区 基本概念&#xff1a; Prometheus是一个开源的系统监控和告警系统&#xff0c;由Google的BorgMon监控系统发展而来。它主要用于监控和度量各种…

2.本地存储

2.1本地存储分类- localStorage 1.作用: 可以将数据永久存储在本地(用户的电脑)&#xff0c;除非手动删除&#xff0c;否则关闭页面也会存在 2.特性: ●可以多窗口(页面)共享(同一浏览器可以共享) ●以键值对的形式存储使用&#xff0c;键值除了数字型都要加引号 3.语法 存…

设计模式篇

工厂方法模式 简单工厂模式 工厂方法模式 抽象工厂模式 策略模式 责任链模式

Vue - 实现垂直菜单分类栏目 开箱即用

Vue - 实现垂直菜单分类栏目 开箱即用 今天发现需要做一个专栏分类的功能&#xff0c;要求光标悬浮到一级专栏时展示二级专栏&#xff0c;当光标移出时隐藏二级专栏。在网山找了一圈没有发现到合适的源代码&#xff0c;参考了一个博客才编写了下面的代码。将其粘贴到空的页面文…

如何将区块链新闻稿发布到海外媒体?

随着区块链技术的不断发展&#xff0c;越来越多的区块链项目涌现出来&#xff0c;各大媒体也开始关注和报道区块链新闻。然而&#xff0c;如何将区块链新闻稿发布到海外媒体成为了许多区块链项目所面临的难题。本文将介绍一些有效的方法&#xff0c;帮助区块链项目将新闻稿发布…

SIP协议之音/视频转换

在SIP通话应用场景中&#xff0c;有时需要在音频和视频通话中进行切换&#xff0c;这个功能实现的需要发送re-INVITE重新协商媒体&#xff0c;即重新协商媒体&#xff08;SDP)中是否允许视频。 一、实现原理 1.1 音频转视频 音频通话过程中&#xff0c;发起方重新发送INVITE消…

大数据Flink(五十七):Yarn集群环境(生产推荐)

文章目录 Yarn集群环境(生产推荐) 一、准备工作

python版《羊了个羊》游戏开发第一天

Python小型项目实战教学课《羊了个羊》 一、项目开发大纲&#xff08;初级&#xff09; 版本1.0&#xff1a;基本开发 课次 内容 技术 第一天 基本游戏地图数据 面向过程 第二天 鼠标点击和移动 面向对象 第三天 消除 设计模式&#xff1a;单例模式 第四天 完整…

换架 3D 飞机,继续飞呀飞

相信大多数图扑 HT 用户都曾见过这个飞机的 Demo&#xff0c;在图扑发展的这十年&#xff0c;这个 Demo 是许多学习 HT 用户一定会参考的经典 Demo 之一。 这个 Demo 用简洁的代码生动地展示了 OBJ 模型加载、数据绑定、动画和漫游等功能的实现。许多用户参考这个简单的 Demo 后…

算法练习--leetcode 链表

文章目录 合并两个有序链表删除排序链表中的重复元素 1删除排序链表中的重复元素 2环形链表1环形链表2相交链表反转链表 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。 新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&…

【IMX6ULL驱动开发学习】03.Linux驱动开发之GPIO子系统、中断、定时器

一、GPIO子系统 1.1 引脚编号 在硬件上如何确定GPIO引脚&#xff1f;它属于哪组GPIO&#xff1f;它是这组GPIO里的哪个引脚&#xff1f;需要2个参数。但是在Linux软件上&#xff0c;可以使用引脚编号来表示。以100ask_ imx6ull为例在开发板上执行如下命令查看已经在使用的GPI…

桥接模式-java实现

桥接模式 桥接模式的本质&#xff0c;是解决一个基类&#xff0c;存在多个扩展维度的的问题。 比如一个图形基类&#xff0c;从颜色方面扩展和从形状上扩展&#xff0c;我们都需要这两个维度进行扩展&#xff0c;这就意味着&#xff0c;我们需要创建一个图形子类的同时&#x…

手搓vue3组件_1.封装一个button

我的icepro参考地址,内有参考代码,有条件的割割点点star 实现要求: 基于vue3支持通过colors(更改颜色)支持点击事件…支持其他的自定义样式(例如圆角,size等等) 最基础的第一步: 父组件引入并使用: <template><div class"buttonLim">我的按钮:<ice-b…

Zabbix监控华为交换机DHCP接口地址池

一、背景 最近工作中遇到一个因为DHCP地址池满载、导致用户无法获取到IP地址的故障&#xff0c;所以在想通过zabbix 监控DHCP地址池的状态、当DHCP 地址池数量小于某个值时触发zabbix告警。 网上找了一下没有相关的文档、和对应的OID值、于是用Python 脚本的方式实现 二、实现效…

第二课-一键安装SD-Stable Diffusion 教程

前言 看完这篇文章并跟着操作,就可以在本地开始 SD 绘图了。 理论上来说,这篇课程结束,想要画什么图都可以画了。 启动器介绍 SD 是开源的,可以在 github 上找到。但直接下载源码安装,非常费劲,而且因为国内外差异,就是我这样的秃头程序员也难以应对。 所以,我们改…

Spring中Bean的“一生”(生命周期)

文章目录 一、图解二、文字解析总结 一、图解 >注&#xff1a;处于同一行的执行顺序是从左往右 二、文字解析 SpringBean的生命周期总体分为四个阶段&#xff1a;实例化>属性注入>初始化>销毁 Step1 实例化Bean&#xff1a;根据配置文件中Bean的定义&#xff0c;…

设计模式(3)装饰模式

一、介绍&#xff1a; 1、应用场景&#xff1a;把所需的功能按正确的顺序串联起来进行控制。动态地给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式比生成子类更加灵活。 当需要给一个现有类添加附加职责&#xff0c;而又不能采用生成子类的方法…

[RCTF2019]DontEatMe

前言 一道迷宫题&#xff0c;但是输入被加密后使用&#xff0c;迷宫也需要在程序中找出并没有直接输出 分析 反调试 发现有两个比较特殊的地方&#xff0c;随机数和创建了新线程&#xff0c;随机数后面又被重新赋值给覆盖了&#xff0c;暂时不用管&#xff0c;ZwSetInformat…

业务需求紧急,IT部门缺失,企业如何应对"影子IT"危机?

在当今数字化时代&#xff0c;业务部门的需求通常非常紧急&#xff0c;但IT部门的排期却跟不上&#xff0c;导致业务部门焦头烂额。IT部门面临着诸多需求&#xff0c;无法在规定时间范围内满足每一个需求&#xff0c;因此未授权的应用程序安全监管也变得愈发困难。 影子IT的频发…