Black|Black Left老师讲课了——迭代循环(PHP)

2019年5月2日 hero 一、开场白 HELLO大家好,我们今天来讲一讲迭代循环这个东西,有的时候我们需要重复做相同的事情或者重复做着有一定规律的事情,如果这样的时候难道我们每次都要手动吗?当然不是,PHP的世界里面就有这么个方法,我们可以称这种叫做重复结构或循环结构。这种结构一般有四个,分别是while、for、foreach、do…while这四个,接下来我们分别介绍这四个结构
二、WHILE
它可以算是一种流程控制,而while是PHP中简单的循环类型,它和C语言中的用法都一样,它的基本格式是这样的,如下图:


Black|Black Left老师讲课了——迭代循环(PHP)
文章图片
expr又是一个表达式,当expr的返回的是真值的时候,那么我们就执行statement部分,并且继续一遍一遍的执行,只有当expr返回的是假值得时候,我们就会停止这个循环。我们来看代码示例:


Black|Black Left老师讲课了——迭代循环(PHP)
文章图片
这两个例子都是一样的,显示1-10,我们看一下结构,一个是while{}一个是while+endwhile 这两种都可以,就看你想怎么用。
三、FOR
for是PHP中最复杂的循环结构,它的行为和C语言依然的相似,for的语法结构是这样的,如下图:


Black|Black Left老师讲课了——迭代循环(PHP)
文章图片
expr1先执行,接着执行expr2,如果expr2值为TRUE,那么就开始执行statement部分,当循环结束后,又开始执行expr3。接着就按照这个顺序一遍一遍的执行,直到expr2返回的是FALSE时终止循环。
【Black|Black Left老师讲课了——迭代循环(PHP)】我们来看一下示例代码:


Black|Black Left老师讲课了——迭代循环(PHP)
文章图片
这是一个循环输出1-10的代码片段。
四、FOREACH
foreach语法结构为遍历数组提供了方便,foreach也只对数组还有对象这两个类型有用,如果你是用在其他数据类型的变量,那么就会报错。我们来看一看语法格式,如下图:


Black|Black Left老师讲课了——迭代循环(PHP)
文章图片
我们来看一个代码示例:


Black|Black Left老师讲课了——迭代循环(PHP)
文章图片


Black|Black Left老师讲课了——迭代循环(PHP)
文章图片
我们根据代码以及输出的结果可以来理解一下这种结构,$value是可以被用来输出的,而通过$key=>$value格式,可以输出键和值两个数值。我们有没有想过这样后数组内部的内容会不会被改变?我们来做个测试,如下代码:


Black|Black Left老师讲课了——迭代循环(PHP)
文章图片
发现并没有变化,难道不能改变吗?是的,如果直接这样子写程序是不能改变原数组的,因as $key=>$a不是引用的数组而是有一点像重新复制出来了一份数组并对这个重新复制的数组进行了操作,而当执行过这个foreach语句的时候复制出来的数组又会被自动处理掉。那么我们来做一个测试,测试一下如何能够使引用数组而不是复制数组,其实就是简单的运用&符号就可以了,如下代码:


Black|Black Left老师讲课了——迭代循环(PHP)
文章图片
看到了吗?我们只需要在$a前加上&符号就可以达到引用的效果了,这样$a其实就是操作了$array这个原数组而不是复制了一份了。
五、DO……WHILE
我们来看一下do…while结构的语句,其实它和while很相似,基本上都可以算是双胞胎兄弟了。do…while和while的区别在于,do…while是先执行后判断,而while是先判断再执行。我们来看一个代码示例:


Black|Black Left老师讲课了——迭代循环(PHP)
文章图片
这个做的是什么呢,首先初始化变量$i为0,接着开始执行先输出$i的值,接着判断$i是否大于0,不大于,那么循环立即终止。这就是我们的do…while




今天我们就讲到这里,其实我们的循环用的的确是挺多的,而且在处理好多相似的内容的时候我们都可以想一想需要不需要用循环来方便的处理,你可能会想,诶呀有好多地方可能不一样。那么你就去寻找一样的地方,你会发现很多东西总是会有需要相同操作的时候。




本内容纯原创,转载请标明出处————————————作者:Black Left日期:2019年5月2日21点03分

    推荐阅读