php基础教程 第八步循环补充
其它循环
上一节内容中,讲解了php中的循环,并且了解了for循环。for循环是php循环中的一种,在本节中继续讲解php循环:While循环、do…while循环、foreach 循环。
While循环
While循环和for循环类似,但是在它的圆括号中只填写循环执行的条件。
语法格式如下:
while (条件)
{要循环的代码;
}
查看以下代码示例:
<?php
$a=array("1","hello",12,"LiLei",13);
$i=0;
while ($i<count($a))
{echo $a[$i].'<br/>';
}
?>
以上代码示例中,定义了一个a数组变量,值为 "1","hello",12,"LiLei",13
,随后定义了一个i变量,值为0。
接下来使用了while循环,在条件中,添加了 $i<count($a)
,用来判断当前i变量每循环一次是否已经大于了数组长度。随后每次循环都输出当前a数组的第i位置值。
查看完以上代码,我们发现,$i变量并没有进行增减,一直都是初始化时的值,为0。此时循环将会一直执行,成为死循环。要避免这种情况我们可以使$i 变量每循环一次就增加1,代码可以写为如下:
<?php
$a=array("1","hello",12,"LiLei",13);
$i=0;
while ($i<count($a))
{echo $a[$i].'<br/>';$i++;
}
?>
在循环的代码中,执行了$i++每次循环i变量加一。这样i值会有变化,在有限次数内会跳出循环。
最终结果如下:
do…while 循环
do…while循环是类型while的一种循环方式,查看以下do…while循环的语法:
do
{要执行的代码;
}
while (条件);
do…while 循环与while循环的不同是,do…while循环条件放在后面,while循环是在前面。这种方式方式有什么不同呢?请看以下示例:
<?php
$i=5;
do
{echo 'hello';$i++;
}while ($i<5);
?>
在以上的do…while循环中,while循环后的条件是 $i<5
,但是变量i的值初始化定义的时候为5,条件是不成立的,那么循环是否会执行?查看以下结果:
循环指定了一次,输出了一个hello,随后就跳出循环。
do…while循环和while 循环的不同点在于,do…while循环不管条件成立与否都会执行一次循环,而while循环则会先判断条件随后再进行循环。两者先后顺序不一样。并且do…while循环需要在条件后打上分号,表示结束。
foreach 循环
foreach循环用于遍历数组,每次循环,数组的元素值就会赋值给一个变量。语法如下:
foreach (数组 as 指向的变量)
{循环的代码;
}
示例如下:
<?php
$a=array('1','aaaa',23,'daw');
foreach($a as $val){echo $val.'<br/>';
}
?>
以上代码中,定义了一个数组变量a,接下来使用foreach循环进行数组的遍历。
在foreach的圆括号中,代码为 $a as $val
,释义为变量val指向数组a变量的元素,每次都指向下一个。例如第一次循环指向为’1’,第二次循环指向为’aaaa’,第三次以此类推。结果如下:
foreach循环变量键值对
foreach循环对键值对的遍历也是非常友好的。查看如下示例:
<?php
$a=array('name'=>'Xiaoming','age'=>23);
foreach($a as $key=>$val){echo $key.'=>'.$val.'<br/>';
}
?>
以上示例中,定义了一个键值对数组a,name是键,Xiaoming是值,其它值也是键值对。
使用foreach进行对a数组的遍历,在圆括号中 $a as $key=>$val
,首先是需要遍历的数组 a,使用关键字as,之后是$key=>$val
,表示键值对的一种关系,$key 是键 $val 是指,这两个变量名可以随意更改,并不是一定需要跟我所写的一致。
结果如下:
在键值对的数组中,也可以不设置键值对关系。例如示例:
<?php
$a=array('name'=>'Xiaoming','age'=>23,12,'ddd','sex'=>'nan',444);
foreach($a as $key=>$val){echo $key.'=>'.$val.'<br/>';
}
?>
以上数组中并不完全是设置的键值对。运行结果如下:
自定义键值对后,如果出现未定义键的数组元素,则会从0开始默认分配。
php基础教程 第八步循环补充相关推荐
- php基础教程 第七步数组补充及循环基础
键值对 上一节中简单的了解了数组的定义.取值及存储,这一节补充一下上一节数组的内容. 在上一节中,我们知道索引是用来标记值的位置,通过索引可以取得当前位置的值.这种一个索引对应着一个值的关系是一个映射 ...
- php基础教程 第十一步 面向对象补充
继承 上一节中学习了php类,以及类方法.类成员变量相关的一些知识,接下来开始学习php类中的继承.本节是上一节的补充.(其实也就是为了保持日更随便发的一篇文) 开始 php继承是继承与父类的所有属性 ...
- php基础教程 第十步 阶段性知识补充
简 在php教程中前九步已经了解了php的一些基础知识.大多数人在了解完以上知识后脑子还是迷茫的,最多懂的一些我所讲解过的知识如何实现(对象为零基础读者),如何搭建一个网站还是不知晓.没关系,接下来我 ...
- php基础教程 第六步 学习数组以及条件判断switch补充
条件语句 switch 在上一节的学习中,学习了php的条件语句if.在php编程中进行条件判断还可以使用switch语句.switch语句语法如下: <?php switch (值或表达式) ...
- Python基础教程:在for循环搭配else的陷阱,你知道吗?
假设有如下代码: for i in range(10):if i == 5:print ('found it! i = %s' % i) else:print ('not found it ...') ...
- php基础教程 第四步 学习运算符
在前面的章节中,以及了解了一些运算法,接下来再讲解一些常规运算法. + 加运算法,用来使左右两边的值或表达式进行加法计算.例如有一个变量$a,一个变量$b,它们的值都为9,$a+$b为9+9等于10. ...
- OpenGL ES基础教程,绘制三角形(补充,附代码)
简介 OpenGL OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维亦可),是一个功能强大,调用方 ...
- HTML5与CSS3基础教程第八版学习笔记7~10章
第七章,CSS构造块 CSS里有控制基本格式的属性(font-size,color),有控制布局的属性(position,float),还有决定访问者打印时在哪里换页的打印控制元素.CSS还有很多控制 ...
- HTML5与CSS3基础教程第八版学习笔记16-21章
第十六章,表单 HTML5引入了新的表单元素.输入类型和属性,以及内置的对必填字段.电子邮件地址.URL以及定制模式验证. 元素: <input type="email"&g ...
最新文章
- AI发展格局正从“数据”演变为“知识”
- 【算法】双指针算法 ( 双指针算法分类 | 相向双指针 | 有效回文串 )
- 跨域 || Jsonp
- GSON序列化时,日期格式问题处理
- IPv4数据报格式及其语义
- php layout布局文件,layout(布局) - jQuery EasyUI中文文档 - EasyUI中文站
- 将你一张表的值覆盖_山西联通携手华为完成长风商务区宏微协同,立体覆盖,打造5G精品网络...
- Web开发必学的8个网页优化技巧!
- pytorch yolov3 代码详解_PyTorch C++ libtorch的使用方法(1)-nightly 版本的 libtorch
- c 子类对象 访问父类对象受保护成员_面向对象三大特征: 继承
- [处理数据的心得][1]--相关矩阵的可视化
- c++ 指针(不断更新)
- FlashMX2004组件事件简单调试器
- utf8汉字编码对照表
- 手机端html怎么复制到剪贴板,移动端和pc端的复制到剪贴板功能
- 今年尾牙我们部门拍的搞笑短片,讲述项目开发的事~
- 英伟达服务器系统显卡驱动,NVIDIA显卡驱动
- 20200725 PAT甲级 7-2 The Judger (25分)
- 借助Amazon EMR与外部KDC进行身份认证,有效集成业务场景
- root格式化linux,Linux-格式化与检验-mkfs
热门文章
- 程序员过关斩将--错误的IOC和DI
- 分布式数字签名令牌TokenProvider
- 微软开源可扩展存储引擎Extensible Storage Engine
- 利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具
- 深入探究ASP.NET Core Startup的初始化
- 几个超级实用但很少人知道的 VS 技巧[更新]
- 微软开源基于 Envoy 的服务网格 Open Service Mesh
- Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权
- Bumblebee微服务网关之Url重写
- .NET Core 微信公众号小程序6种获取UnionID方法,你知道哪几种?