while语句
while循环语句和if语句的不同,就在于if语句只有在条件为true的情况下才执行后续的代码块一次,而while循环语句只要条件为true,就会不断的重复执行代码块
while ( condition ) expression
实例:显示数字1-5
$num = 1;
while ($num <= 5 ){
echo $num . "<br />";
$num++;
}
// 在每次循环的开始,都将对条件进行检测,如果条件为false,该语句将不会执行,而且循环就会结束。
do...while循环
do {
要执行的代码;
} while (条件为真);
1、do-while 循环语句保证会执行一次
2、最适合循环语句至少被执行一次的情况
3、while后面有分号;
$i = 5;
do {
$i++;
echo "The number is $i <br/>";
}while ($i<5);
for循环
相比while,代码更加紧凑一些,更关注循环的次数。
for (initial expression1;condition; expression2){
//Do something
}
initial expression1
(初始表达式1) 在第一次循环时自动计算condition
(条件表达式)将在每一次循环开始之前被检测;这个表达式确定是否继续循环。expression2
(表达式2)在每次循环时进行计算。通常,可以在这里调整计数器的值。Do something
在每一次循环中执行一次。通常,这个表达式是一个包含大量循环代码的代码块。
expression1
,condition
,expression2
这些表达式都可以为空,它们可以由for块内部的逻辑所取代。
// 示例一
for ($i = 0; $i < 10; $i++) {
echo $i,'<br/>';
}
// 示例二
for ($i = 0; ; $i++) {
if( $i > 10 ) break;
echo $i,'<br/>';
}
// 示例三
$i = 0;
for (; ; ) {
if( $i > 10 ) break;
echo $i,'<br/>';
$i++;
}
特殊的流程控制语句
1、break;
1、遇到break语句,将立即结束do...while、for、foreach、switch或while循环的执行。
2、break可以接收一个数字(如break2)来决定跳出几重语句。
$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "我是 5<br />";
break 1; /* 只退出 switch. */
case 10:
echo "我是10<br />";
break 2; /* 退出 switch 和 while 循环 */
default:
break;
}
}
2、goto(PHP5.3+)
goto操作符是PHP5.3+后新增功能,用来跳转到程序的另一位置;用法很简单:goto后面带上目标位置的标志,在目标位置上用目标名加冒号标记.
for ($count = 0; $count < 10; $count++) {
$rand = mt_rand(0, 50);
if( $rand < 10 )
goto less;
elseif( $count == 9 ) //在循环中至少有一次命中goto
goto end;
else
echo '获取的随机数都比10大:'.$rand.'<hr/>';
}
echo '我只是想安静的做个美男子','<br/>';
less:
echo '循环了'.($count+1).'次,终于获得一个小于10的数:'.$rand,'<br/>';
end:
echo '游戏结束';
goto在开发中慎用。滥用会造成代码可读性差。
3、continue语句
1、只能在循环语句内部,功能是跳过该次循环,进入下次循环
2、也可以接收一个数字来决定跳出多重语句
3、循环结构中,不会执行continue以后的语句。
for ($i=0;$i<10;$i++){
if( $i%2 == 0 ) continue;
echo $i,'<br/>';
}
/* 后宫佳丽三千,可是皇上啊,独宠我一人 */
$i = 0;
while ($i++ < 5){
echo '嫔妃1','<br/>';
while (1){
echo '--嫔妃2','<br/>';
while (1){
echo '----嫔妃3','<br/>';
continue 3;
}
echo '嫔妃4一直得不到宠爱';
}
echo '嫔妃5一直也得不到宠爱';
}
4、exit语句
结束整个PHP脚本的执行,从而不会执行exit后剩下的代码。多用于排错!
//在生产环境下,php.ini中关闭了display_errors;所以error/notice/..信息不会直接出现在页面上,我们就可以借助exit来排错!
echo $a;
var_dump($a);
exit('-------');