for 循环在很多的编程语言中都被支持,是一种常见的循环用法,也算是我们学习每门编程语言中最基础的知识点。但正是因为基础,所以才容易被忽略,久而久之,甚至会误解。本文 PHPHa 就对 PHP 中的 for 循环进行复习,不求温故而知新,但求能矫枉过正。

首先看下 PHP 手册中对 for 循环的描述。(PHP 4, PHP 5, PHP 7)

for 循环是 PHP 中最复杂的循环结构。它的行为和 C 语言的相似。 for 循环的语法是:

for (expr1; expr2; expr3)

statement

第一个表达式(expr1)在循环开始前无条件求值(并执行)一次。

expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。

expr3 在每次循环之后被求值(并执行)。

每个表达式都可以为空或包括逗号分隔的多个表达式。表达式 expr2 中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。expr2 为空意味着将无限循环下去(和 C 一样,PHP 暗中认为其值为 TRUE)。这可能不像想象中那样没有用,因为经常会希望用有条件的 break 语句来结束循环而不是用 for 的表达式真值判断。

其实是非常基础的知识点,对于以上官方描述,相信大家一扫而过而不会有任何的疑问。

那么为什么文章开头我却说本文是要来矫枉过正呢?这是因为 PHPHa 最近在补充数据结构与算法相关知识点,在基于理论分析的基础上,看到快速排序算法的代码实现,对其 for 循环中的某一个变量的值产生了怀疑。

快速排序的代码就不贴了,目前就看下面的简化代码:// [A]

for ($i = 0; $i < 5; ++ $i) {

continue;

}

// 5

echo $i;

// [B]

for ($i = 0; $i < 5; ++ $i) {

break;

}

// 0? 1?

echo $i;

那么,上面的 [A] [B] 两段代码,最终输出的 $i 的值分别是多少呢?其实对于 [A] 段没什么疑问,肯定是 5,问题在于 [B] 段代码的输出值,到底是 0 还是 1。

对于这个问题可以回到上文中官方描述的内容,也就是对于 for 循环里面第三个表达式的描述,如下:expr3 在每次循环之后被求值(并执行)

重点就在于 循环之后 这四个字。再回到 [B] 段代码,其中第 1 次循环就遇到了 break,并没有循环成功,不满足 循环之后 的条件,因此,$i 的值不能递增,那么依然是 0。

借着这个问题,咱们顺便再来说下 PHP 中的递增与递减,即 $i++ / ++$i / $i-- / --$i 相关知识点。例子名称效果

++$a前加$a 的值加一,然后返回 $a

$a++后加返回 $a,然后将 $a 的值加一

--$a前减$a 的值减一,然后返回 $a

$a--后减返回 $a,然后将 $a 的值减一

递增与递减类似,因此就只说下递增的两种区别即可。$a = 1;

$b = $a++; // 执行后:$a==2 $b==1

$b = ++$a; // 执行后:$a==3 $b==3

以上,就是本文的全部内容。

php 结束for循环_PHP 之 for 循环相关推荐

  1. 语句中如何结束本循环进入下一循环_第33 p,for遍历,循环取值最方便

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第33篇文章,第二阶段的课程:Python基础知识:Python中的控制语句之for遍历. 学习本课程,建议先看一遍:[计算机基础知 ...

  2. phpbreak跳出几层循环_php中break如何跳出多重循环的示例代码

    break是被用在上面所提的各种循环和switch语句中的.他的作用是跳出当前的语法结构,执行下面的语句.break语句可以带一个参数n,表示跳出循环的层数,如果要跳出多重循环的话,可以用n来表示跳出 ...

  3. python3循环一直到一个值结束_一步一步学Python3(小学生也适用) 第十七篇:循环语句for in循环...

    一.Python for in循环 Python for in 循环,是用来遍历任何数据序列,如一个列表,一个字符串,一个字典,一个元组等. for in 循环的一般语法如下: for item in ...

  4. 语句中如何结束本循环进入下一循环_Python3基础语法(八)--控制循环 while...

    一.while 简介 Python 的循环有 for 和 while 两种,while 为条件控制循环,通过循环控制条件表达式控制循环结束. 流程图如下: Python 中 while 语句的格式如下 ...

  5. android return 如何跳出两个循环_PHP跳出循环的方法

    PHP中的循环结构大致有for循环,while循环,do{} while 循环以及foreach循环几种,不管哪种循环中,在PHP中跳出循环大致有这么几种方式: 一:exit exit是用来结束程序执 ...

  6. C语言循环结构程序(while循环、do while循环、for循环、break终止、continue结束)

    while循环.do while循环.for循环.break终止.continue结束 环境:CentOS7: 循环条件:①循环体:②循环结束条件: 特点:计算机只处理有条件的循环(有效性.确定性和有 ...

  7. sql语句中的in用法示例_PHP中的循环语句和示例

    sql语句中的in用法示例 循环 (Loops) Imagine that we need a program that says "hello world" 100 times. ...

  8. php循环套循环_PHP中的事件循环简介

    php循环套循环 PHP developers are always waiting for something. Sometimes we're waiting for requests to re ...

  9. phpbreak跳出几层循环_PHP break:跳出循环

    break 关键字可以使程序跳出当前的循环,可以在 switch.for.while 和 do while 等语句中使用,这样可以终止循环体的代码并立即跳出当前的循环,执行循环之后的代码. break ...

最新文章

  1. 【廖雪峰python入门笔记】for循环
  2. r shiny app的学习和使用,这个我认为是作为大学生最适合的入门网页开发工具!!!
  3. PageHelper分页插件使用
  4. floatmap 二维数组_Golang学习笔记(四):array、slice、map
  5. 程序员的算法课(9)-常见字符串算法
  6. Python操作SQLAlchemy
  7. SpringBoot自动配置原理分析
  8. Power of Four(Leetcode 342)
  9. css系统自带字体_CSS系统字体
  10. 去除文件系统、只读等属性
  11. DHTMLX Diagram JavaScript/HTML5 Pro Library:5.0
  12. matlab 实现常用的混沌映射(Tent, Sine, Sinusoidal, Piecewise, Logistic, Cubic, Chebyshev)
  13. c语言飞机票实验报告格式,c语言航班信息查询系统实验报告
  14. MyBatis框架快速入门
  15. java计算机毕业设计家电售后管理系统MyBatis+系统+LW文档+源码+调试部署
  16. 简单手绘创意思维导图,思维导图软件
  17. 淘宝美工设计视频教程云盘分享
  18. 基于java+jsp+mysql的酒店预订系统
  19. 最优化方法----powell共轭梯度算法
  20. 更新并关机怎么关闭计算机,win7如何去掉“安装更新并关机”选项

热门文章

  1. SI3933替换AS3933,唤醒RKE钥匙扣内部的CPU射频(RF)发射机 汽车PKE无钥匙操作方案
  2. 基于微信小程序外卖点餐系统的设计与实现.rar(毕业设计论文+程序源码)
  3. Oracle 10g 11c 12c的自动统计任务问题
  4. 解决Windows远程桌面服务无法复制粘贴:重启rdpclip.exe
  5. 3.11 分区存储组织
  6. excel 多条件查找三种方法:lookup、vlookup、indexmatch 多条件查找案例
  7. Java中的有序集合
  8. C#中的文件导出大全
  9. 看漫画学设计模式——策略模式
  10. esp8266 接收udp广播_【零知ESP8266教程】AP模式下WIFI UDP协议通信示例