- 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 - Spread 运算符
- PHP - Null 合并运算符
- PHP - Spaceship 运算符
- PHP 控制语句
- PHP – 决策
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP – 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - do...While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 数组
PHP - While 循环
PHP 创建循环的最简单方法是使用 while 结构。PHP while 循环的语法类似于 C 语言中的语法。只要 while 语句中的布尔表达式为 true,就会重复执行循环体块。
下图有助于理解 PHP 中的 while 循环是如何工作的 -
每次在循环开始时都会检查表达式的值。如果 while 表达式从一开始就计算为 false,则循环甚至不会运行一次。即使在块执行期间表达式变为 false,执行也不会停止,直到迭代结束。
while 循环的语法可以表示如下 -
while (expr){
声明
}
示例
下面的代码显示了 while 循环在 PHP 中如何工作的简单示例。在循环开始之前,变量 $x 初始化为 1。只要循环体小于或等于 10,就会要求执行循环体。循环体中的 echo 语句打印当前迭代编号,并增加 x 的值,以便条件最终变为 false。
<?php
$x = 1;
while ($x<=10) {
echo "第 $x 次迭代\n";
$x++;
}
?>
它将产生以下输出 -
第 2 次迭代
第 3 次迭代
第 4 次迭代
第 5 次迭代
第 6 次迭代
第 7 次迭代
第 8 次迭代
第 9 次迭代
第 10 次迭代
请注意,在每次迭代开始时都会检查测试条件。即使条件在循环中变为 false,执行也不会停止,直到迭代结束。
示例
在以下示例中,“x” 在每次迭代中递增 3。在第三次迭代中,“x” 变为 9。由于测试条件仍然为 true,因此将进行下一轮,其中 “x” 变为 12。当条件变为 false 时,循环将停止。
<?php
$x = 0;
while ($x<=10){
$x+=3;
echo "第 $x 次迭代。\n";
}
?>
它将产生以下输出 -
第 6 次迭代。
第 9 次迭代。
第 12 次迭代。
示例
并不总是需要让循环变量递增。如果循环变量的初始值大于循环应该结束的值,则递减它。
<?php
$x = 5;
while ($x>0) {
echo "第 $x 次迭代\n";
$x--;
}
?>
它将产生以下输出 -
第 4 次迭代
第 3 次迭代
第 2 次迭代
第 1 次迭代
while 迭代数组
PHP 中的索引数组是元素的集合,每个元素都由从 0 开始的递增索引标识。
您可以通过构成 while 循环来遍历数组,方法是重复访问第 x 个索引处的元素,直到 “x” 达到数组的长度。此处,“x” 是一个计数器变量,每次迭代都会递增。我们还需要一个 count() 函数来返回数组的大小。
示例
请看下面的例子 -
<?php
$numbers = array(10, 20, 30, 40, 50);
$size = count($numbers);
$x=0;
while ($x<$size) {
echo "索引 $x 的数字为 $numbers[$x] \n";
$x++;
}
?>
将产生以下输出 -
索引 1 的数字为 20
索引 2 的数字为 30
索引 3 的数字为 40
索引 4 的数字为 50
嵌套 while 循环
您可以在另一个 while 循环包含 while 循环。外部和内部 while 循环都由两个单独的变量控制,每次迭代后递增。
<?php
$i=1;
$j=1;
while ($i<=3){
while ($j<=3){
echo "i= $i j= $j \n";
$j++;
}
$j=1;
$i++;
}
?>
将产生以下输出 -
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
请注意,作为内部 while 循环的计数器变量 “j” 在获取所有值后被重新初始化为 1,因此对于 “i” 的下一个值,“j” 再次从 1 开始。
遍历字符串的字符
在 PHP 中,字符串可以被视为字符的索引集合。因此,具有从 “0” 到字符串长度的 counter 变量的 while 循环可用于一次获取一个字符。
示例
以下示例计算给定字符串中的元音数。我们使用 strlen() 来获取长度,使用 str_contains() 来检查字符是否是元音之一。
<?php
$line = "PHP is a popular general-purpose scripting language that is especially suited to web development.";
$vowels="aeiou";
$size = strlen($line);
$i=0;
$count=0;
while ($i<$size){
if (str_contains($vowels, $line[$i])) {
$count++;
}
$i++;
}
echo "Number of vowels = $count";
?>
它将产生以下输出 -
使用 endwhile 语句
PHP 还允许你对 while 循环使用另一种语法。循环体不是将多个语句合并到大括号中,而是在条件后面用 “:”(冒号)符号标记,并在末尾用 endwhile 语句标记。
<?php
$x = 1;
while ($x<=10):
echo "第 $x 次迭代\n";
$x++;
endwhile;
?>
它将产生以下输出 -
第 2 次迭代
第 3 次迭代
第 4 次迭代
第 5 次迭代
第 6 次迭代
第 7 次迭代
第 8 次迭代
第 9 次迭代
第 10 次迭代
请注意,endwhile 语句以分号结尾。