循环类型
PHP 中的循环语句用于执行指定次数相同的代码块。PHP 支持以下四种循环类型:
- for – 循环执行代码块指定的次数
- while – 只要指定的条件为真,则循环执行代码块
- do…while – 循环执行代码块,然后在指定的条件为真时重复这个循环
- foreach – 根据数组中每个元素来循环代码块
我们将讨论关于关键字continue和break在循环执行结构中的使用。
for 语句
当您已经确定了代码块的重复执行次数,for 语句可以被使用。
语法
1 2 3 4 |
for (initialization; condition; increment) { code to be executed; } |
初始化程序是用来设置循环次数的初始值。为了这个目的变量可能会在这里被声明,这是传统的命名方式 $i。
例子
下面的例子使二个被赋值的变量会在每次循环中迭代输出,并且循环五次:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<html> <body> <?php $a = 0; $b = 0; for( $i=0; $i<5; $i++ ) { $a += 10; $b += 5; } echo ("At the end of the loop a=$a and b=$b" ); ?> </body> </html> |
这将会输出以下结果:
1 |
At the end of the loop a=50 and b=25 |
while 循环语句
只要指定的条件为真,while 语句将重复执行代码块。
如果表达式条件为真,那么代码块将被执行。然后执行表达式测试代码,表达式的循环将继续执行,直到发现是假的才结束循环体。
语法
1 2 3 4 |
while (condition) { code to be executed; } |
例子
这个例子将一个变量循环十次,每次循环值会自增或自减,直到循环到 10 当条件是假时,循环才结束。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<html> <body> <?php $i = 0; $num = 50; while( $i < 10) { $num--; $i++; } echo ("Loop stopped at i = $i and num = $num" ); ?> </body> </html> |
上述代码将会输出以下代码:
1 |
Loop stopped at i = 10 and num = 40 |
do_while 循环语句
do…while 语句会至少执行一次代码 – 然后,只要条件为真,就会重复进行循环。
语法
1 2 3 4 5 |
do { code to be executed; } while (condition); |
例子
下面的例子将对变量 i 的值进行一次累加,然后,只要 i 小于 10 的条件为真,就会继续累加下去:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<html> <body> <?php $i = 0; $num = 0; do { $i++; }while( $i < 10 ); echo ("Loop stopped at i = $i" ); ?> </body> </html> |
上述代码将会输出以下代码:
1 |
Loop stopped at i = 10 |
foreach 语句
foreach 语句用于循环遍历数组。每进行一次循环,当前数组元素的值就会被赋值给 value 变量,数组指针会逐一地移动以此类推。
语法
1 2 3 4 |
foreach (array as value) { code to be executed; } |
例子
尝试以下例子来列出一个数组的值。
1 2 3 4 5 6 7 8 9 10 11 |
<html> <body> <?php $array = array( 1, 2, 3, 4, 5); foreach( $array as $value ) { echo "Value is $value <br />"; } ?> </body> </html> |
上述代码将会输出以下代码:
1 2 3 4 5 |
Value is 1 Value is 2 Value is 3 Value is 4 Value is 5 |
Break语句
PHP 关键字 break 被用来结束当前循环。
break 语句坐落在语句块。如果给你完全控制,每当你想退出本次循环。走出一个循环语句立即将被执行。
例子
下面的例子条件测试变成 true 当值自增到 3 的时候会终止循环。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<html> <body> <?php $i = 0; while( $i < 10) { $i++; if( $i == 3 )break; } echo ("Loop stopped at i = $i" ); ?> </body> </html> |
上述代码将会输出以下代码:
1 |
Loop stopped at i = 3 |
Continue语句
PHP continue 关键字在循环结构中用来跳过本次循环但它不会终止循环。
continue 语句像 break 语句一样坐落在包含循环执行的代码块中。通过遇到的 continue 关键字,跳过本次循环剩下的循环代码,执行下次循环。
例子
在以下示例循环输出数组的值,但条件变为真时只是跳过本次循环,执行下次循环。
1 2 3 4 5 6 7 8 9 10 11 12 |
<html> <body> <?php $array = array( 1, 2, 3, 4, 5); foreach( $array as $value ) { if( $value == 3 )continue; echo "Value is $value <br />"; } ?> </body> </html> |
上述代码将会输出以下代码:
1 2 3 4 |
Value is 1 Value is 2 Value is 4 Value is 5 |