前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「基础编程学习」 「PHP7数组详解」:第1章 (6)循环结构

「基础编程学习」 「PHP7数组详解」:第1章 (6)循环结构

作者头像
程序员小助手
发布2020-04-08 11:26:24
7270
发布2020-04-08 11:26:24
举报
文章被收录于专栏:程序员小助手

# 1.11 循环结构

循环,这个太常用了。我们为什么使用计算机,而不是手动一个一个处理,就是因为计算机善于处理循环的结构。把最枯燥的部分,扔给机器,它喜欢这样。

循环的应用场景,很多。比如对于数组的处理,我们在程序当中,总是有很多规格的数据要处理,转化,转换,格式化。而数组,也即是我们本书所要讲的重点知识,在PHP中非常常见。

PHP中的循环结构,有3中语法结构。

  1. for循环
  2. foreach循环
  3. while循环

1 - for循环

话不多说,直接上代码。看下面这段:

for语句内位置参数,第一个是循环因子的初始值,第二个是跳出循环的判断条件,第三个是运行式。

上述代码中,在条件判断else中使用continue语句,表示,这一轮算了,就这样了,不要管了,直接开始下一轮循环吧。默认跳出一层循环。如果循环层数多了,可以指定跳出几层。

下面我们举一个直观的例子,大家在视觉上对for循环有个认识。我们输出10个进度条,分别从10%-100%,递加10%。

为了说明效果,HTML和PHP混合写了,大家知道这个运行机制就可以了,这不是最佳实践。

注意样式是使用的bs。

老规矩,在浏览器内访问 www.array.com/chapter1.5.php ,刷新后效果如下图:

怎么样,效果是不是很直观。一共10个循环,每次递增10,展示出来就是这样了。

2 - foreach循环

foreach 语法结构提供了遍历数组的简单方式。

foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。

你如果曾留意一些框架,或者代码库,对此君一定不会陌生。没错儿,到处都是它。

先列举几个简单的列子,大家看一看,应该就能明白语法结构了。

$temp是一个数组。再看复杂一些的:

这次循环的时候使用 $k=>$v结构,$k保留索引值,$v保留数值。

PHP内的foreach循环大抵如此。我们使用时,大可不必考虑数组长度,只用考虑数组是一个什么结构,是关联数组,还是一维简单数组,对应处理即可。

3 - while循环

while循环用的也应该算是最低的,为什么?一不留神,死循环!会一直到PHP的timeout时间30秒。这是不允许出现的。

还是通过代码认识一下其结构。

上面这段代码,是对文件的操作句柄$fp,判断其是否到了文件结尾feof()函数。

如果不是文件末尾,继续循环。执行结构体内的语句。

当然,上面代码中使用if判断语句,如果执行到一行,没有任何字符,仅仅是换行符,这个说明是空行,那也直接执行break。这也能跳出循环。

有时候为了写一个命令行运行的文件,要守护进程,永远不过期,永远不退出,那可能就需要一个死循环,用云运行下去。下面的代码看一下:

大家看,这就是一个while(true)典型的死循环。为什么这么用?因为我们不知道到底要处理多少数据,不知道到底有多少循环。因此只能这样,硬着头皮走下去,那么在遇到合适的跳出条件时,使用break跳出循环。

在订单处理中,预先不能预估数据量的话,不用这样的办法,可用的选择似乎并不多。

为了加深印象,我们再看一个完整的函数:

上述函数解析url内的query string部分,类似 a=1&b=3&c=9这样,一个一个地截断操作。知道将字符串字段到最后没有任何值,那么strlen($nvpstr) === 0,这时候while循环退出,函数返回。

大家完全可以发挥想象力,使用这简单的结构,构造出复杂的应用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小助手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 1.11 循环结构
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档