- PHP 教程
- PHP - 首页
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 特性
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - echo/print
- PHP - var_dump
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP - 数据类型
- PHP - 类型转换
- PHP - 类型强制转换
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件与 I/O
- PHP - 数学函数
- PHP - Heredoc 和 Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期与时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符
- PHP - 算术运算符
- PHP - 比较运算符
- PHP - 逻辑运算符
- PHP - 赋值运算符
- PHP - 字符串运算符
- PHP - 数组运算符
- PHP - 条件运算符
- PHP - 展开运算符
- PHP - 空值合并运算符
- PHP - 比较运算符(飞船运算符)
- PHP 控制语句
- PHP - 决策
- PHP - if...else 语句
- PHP - switch 语句
- PHP - 循环类型
- PHP - for 循环
- PHP - foreach 循环
- PHP - while 循环
- PHP - do...while 循环
- PHP - break 语句
- PHP - continue 语句
- PHP 函数
- PHP - 函数
- PHP - 函数参数
- PHP - 按值传递
- PHP - 按引用传递
- PHP - 默认参数
- PHP - 具名参数
- PHP - 可变参数
- PHP - 返回值
- PHP - 传递函数
- PHP - 递归函数
- PHP - 类型提示
- PHP - 变量作用域
- PHP - 严格类型
- PHP - 匿名函数
- PHP - 箭头函数
- PHP - 可变函数
- PHP - 局部变量
- PHP - 全局变量
- PHP 超全局变量
- PHP - 超全局变量
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 文件处理
- PHP - 文件处理
- PHP - 打开文件
- PHP - 读取文件
- PHP - 写入文件
- PHP - 文件是否存在
- PHP - 下载文件
- PHP - 复制文件
- PHP - 追加文件
- PHP - 删除文件
- PHP - 处理 CSV 文件
- PHP - 文件权限
- PHP - 创建目录
- PHP - 列出文件
- 面向对象 PHP
- PHP - 面向对象编程
- PHP - 类和对象
- PHP - 构造函数和析构函数
- PHP - 访问修饰符
- PHP - 继承
- PHP - 类常量
- PHP - 抽象类
- PHP - 接口
- PHP - 特性
- PHP - 静态方法
- PHP - 静态属性
- PHP - 命名空间
- PHP - 对象迭代
- PHP - 封装
- PHP - final 关键字
- PHP - 重载
- PHP - 克隆对象
- PHP - 匿名类
- PHP Web 开发
- PHP - Web 概念
- PHP - 表单处理
- PHP - 表单验证
- PHP - 表单邮件/URL
- PHP - 完整表单
- PHP - 文件包含
- PHP - GET 和 POST
- PHP - 文件上传
- PHP - Cookie
- PHP - Session
- PHP - Session 选项
- PHP - 发送邮件
- PHP - 过滤输入
- PHP - Post-Redirect-Get (PRG)
- PHP - 闪存消息
- PHP 高级
- PHP - MySQL
- PHP.INI 文件配置
- PHP - 数组解构
- PHP - 编码规范
- PHP - 正则表达式
- PHP - 错误处理
- PHP - try...catch
- PHP - 调试
- PHP - 给 C 开发者
- PHP - 给 PERL 开发者
- PHP - 框架
- PHP - Core PHP vs. 框架
- PHP - 设计模式
- PHP - 过滤器
- PHP - JSON
- PHP - 异常
- PHP - 特殊类型
- PHP - 哈希
- PHP - 加密
- PHP - is_null() 函数
- PHP - 系统调用
- PHP - HTTP 认证
- PHP - 交换变量
- PHP - Closure::call()
- PHP - 过滤后的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 预期
- PHP - use 语句
- PHP - 整数除法
- PHP - 已弃用的特性
- PHP - 已移除的扩展和 SAPIs
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 进程
- PHP - PDO 扩展
- PHP - 内置函数
- PHP 有用资源
- PHP - 速查表
- PHP - 问答
- PHP - 快速指南
- PHP - 在线编译器
- PHP - 有用资源
- PHP - 讨论
PHP - for 循环
程序默认情况下按照语句的顺序执行。如果程序流程指向程序中任何较早的语句,则构成循环。PHP 中的 **for** 语句是构成 PHP 脚本中循环的便捷工具。在本章中,我们将讨论 PHP 的 for 语句。
"for" 循环流程图
下面的流程图解释了 **for** 循环的工作原理:
当你知道要执行语句或语句块多少次时,使用 **for** 语句。
"for" 循环的语法
PHP 中 **for** 语句的语法类似于 C 语言中的 for 语句。
for (expr1; expr2; expr3){ code to be executed; }
**for** 关键字后跟一个包含三个用分号分隔的表达式的括号。它们每个都可以为空,或者可以包含用逗号分隔的多个表达式。括号后跟一个或多个放在花括号内的语句。它构成循环的主体。
括号中的第一个表达式只在循环开始时执行一次。它通常充当 **初始化器**,用于设置循环迭代次数计数器的起始值。
在每次迭代开始时,都会计算 **expr2** 的值。如果其计算结果为真,则循环继续,并执行主体块中的语句。如果其计算结果为假,则循环执行结束。通常,**expr2** 指定计数器的最终值。
**expr3** 在每次迭代结束时执行。在大多数情况下,此表达式递增计数器变量。
示例
**for** 循环最通用的示例如下:
<?php for ($i=1; $i<=10; $i++){ echo "Iteration No: $i \n"; } ?>
以下是它的 **输出**:
Iteration No: 1 Iteration No: 2 Iteration No: 3 Iteration No: 4 Iteration No: 5 Iteration No: 6 Iteration No: 7 Iteration No: 8 Iteration No: 9 Iteration No: 10
无限 "for" 循环
请注意,括号中的三个表达式都是可选的。只有两个分号的 **for** 语句构成无限循环。
for (; ;) { Loop body }
要停止无限迭代,需要在循环体中使用 **break** 语句。
递减 "for" 循环
你还可以形成递减的 **for** 循环。要使 **for** 循环从 10 到 1,将循环变量初始化为 10,中间的表达式在每次迭代开始时计算其值是否大于 1。每次迭代结束时要执行的最后一个表达式应将其递减 1。
<?php for ($i=10; $i>=1; $i--){ echo "Iteration No: $i \n"; } ?>
它将产生以下 **输出**:
Iteration No: 10 Iteration No: 9 Iteration No: 8 Iteration No: 7 Iteration No: 6 Iteration No: 5 Iteration No: 4 Iteration No: 3 Iteration No: 2 Iteration No: 1
使用 "for...endfor" 结构
你也可以使用 ":" (冒号) 符号开始循环块,并在块的末尾放置 **endfor** 语句。
<?php for ($i=1; $i<=10; $i++): echo "Iteration No: $i \n"; endfor; ?>
使用 "for" 循环迭代索引数组
数组中的每个元素都由从 "0" 开始递增的索引标识。如果存在 5 个元素的数组,则其下界为 0,上界为 4 (数组大小 -1)。
要获取数组中的元素个数,可以使用 count() 函数。因此,我们可以使用以下 **for** 语句迭代索引数组:
<?php $numbers = array(10, 20, 30, 40, 50); for ($i=0; $i<count($numbers); $i++){ echo "numbers[$i] = $numbers[$i] \n"; } ?>
它将产生以下 **输出**:
numbers[0] = 10 numbers[1] = 20 numbers[2] = 30 numbers[3] = 40 numbers[4] = 50
使用 "for" 循环迭代关联数组
PHP 中的关联数组是键值对的集合。箭头符号 (=>) 用于显示键与其值之间的关联。我们使用 **array_keys()** 函数来获取键数组。
下面的 **for** 循环从代码中定义的关联数组 **$capitals** 中打印每个州的首府:
<?php $capitals = array( "Maharashtra"=>"Mumbai", "Telangana"=>"Hyderabad", "UP"=>"Lucknow", "Tamilnadu"=>"Chennai" ); $keys=array_keys($capitals); for ($i=0; $i<count($keys); $i++){ $cap = $keys[$i]; echo "Capital of $cap is $capitals[$cap] \n"; } ?>
以下是它的 **输出**:
Capital of Maharashtra is Mumbai Capital of Telangana is Hyderabad Capital of UP is Lucknow Capital of Tamilnadu is Chennai
在 PHP 中使用嵌套 "for" 循环
如果在现有循环的主体内部使用另一个 **for** 循环,则称这两个循环已嵌套。
对于外循环的计数器变量的每个值,都会完成内循环的所有迭代。
<?php for ($i=1; $i<=3; $i++){ for ($j=1; $j<=3; $j++){ echo "i= $i j= $j \n"; } } ?>
它将产生以下 **输出**:
i= 1 j= 1 i= 1 j= 2 i= 1 j= 3 i= 2 j= 1 i= 2 j= 2 i= 2 j= 3 i= 3 j= 1 i= 3 j= 2 i= 3 j= 3
请注意,字符串是一种数组形式。**strlen()** 函数给出字符串中的字符数。
示例
以下 PHP 脚本使用两个嵌套循环在每一行打印来自字符串的递增数量的字符。
<?php $str = "TutorialsPoint"; for ($i=0; $i<strlen($str); $i++){ for ($j=0; $j<=$i; $j++){ echo "$str[$j]"; } echo "\n"; } ?>
它将产生以下 **输出**:
T Tu Tut Tuto Tutor Tutori Tutoria Tutorial Tutorials TutorialsP TutorialsPo TutorialsPoi TutorialsPoin TutorialsPoint