



循环语句,又称为迭代语句,是指在满足一定的条件下,重复执行相同代码的语句结构。PHP中的循环语句结构包括:
● for
● foreach
● while
● do…while
在这些语句结构中,还可以使用break语句终止循环,或使用continue语句结束当前循环。
for循环语句用于已知循环执行次数的情况,例如,计算1到100的累加、通过数值索引访问数组成员等。
for语句应用格式如下:
下面是计算1到100累加的代码。
代码执行结果会显示5050。
foreach适合于遍历集合,先通过两个简单的例子熟悉foreach语句结构的应用,在讨论数组时还会有大量的应用示例。
首先,可以使用foreach语句结构访问数组成员的值,如下面的代码。
foreach关键字后的一对圆括号中,as关键字左侧为数组对象,右侧是表示数组成员值的变量,代码执行结果见图4-5。
图 4-5
需要同时访问数组的键(整数索引或数据名称)和值时,在as关键字后使用=>运算符,运算符左侧指定包含“键”的变量,右侧指定包含“值”的变量,如下面的代码。
代码执行结果见图4-6。
图 4-6
稍后会详细讨论数组的应用。
while语句的应用格式如下:
当<条件>成立(true)时,执行<语句块>,<条件>不成立时结束while语句结构。需要注意的是,在<语句块>中应该有改变<条件>的代码,否则就会无限循环,也称为“死循环”。
下面的代码使用while语句结构计算1到100的和。
代码执行结果显示5050。
do…while语句与while语句结构执行的逻辑相似,只是将判断循环条件的操作放在每次执行循环之后,格式如下。
下面的代码使用do…while语句结构计算1到100的和。
在switch语句结构中,break语句用于中断每个case代码块,以免造成结构贯穿。循环语句中,break语句用于终止循环结构。如下面的代码会判断一个正整数是否为质数。
执行代码会显示bool(true),即19是质数,可以修改$n的值来观察执行结果。
本例中,使用$isPrime变量标识是否为质数,首先会假设为质数;在for语句结构中,如果数值能够被2至数值算术平方根之间的一个数整除,它就不是质数,此时,将$isPrime变量设置为false,并使用break语句终止循环。
在循环语句结构中,continue语句的功能是中止当前循环,并开始执行下一次循环(条件满足时)。
下面的代码使用continue语句模拟计算1到100偶数之和的功能。
代码执行会显示2550。实际上,熟练掌握for语句后会使用更简洁的代码来完成这个功能,如下面的代码。
这里,只需要将$i的初始值指定为2,然后每次循环后加2就可以得到下一个偶数,执行代码同样显示2550。