[TOC]
流程控制
替代写法 (PHP 4, PHP 5, PHP 7)
注意:不支持在同一个控制块内混合使用两种语法。
PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;。
A is equal to 5
判断
if
else
elseif/else if
while
while ($i <= 10) {
##do sth
}
/* example 2 */
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
do-while
do-while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和一般的 while 循环主要的区别是
do-while :的循环语句保证会执行一次(表达式的真值在每次循环结束后检查)
while: 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 FALSE 则整个循环立即终止)。
$i = 0;
do {
echo $i;
} while (0);
##只执行一次
for
10) {
break;
}
echo $i;
}
/* example 3 */
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}
/* example 4 */
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
/* example 5 */
for (expr1; expr2; expr3):
statement;
...
endfor;
?>
foreach
break&&continue
break:可以接受一个可选的数字参数来决定跳出几重循环 explame break2 默认为1
continue:接受一个可选的数字参数来决定跳过几重循环到循环结尾 continue3 默认为1
5.4.0 continue 0/break0; 不再合法。这在之前的版本被解析为 continue 1/break1;。
5.4.0 取消变量作为参数传递(例如 $num = 2; continue $num/break $num;)。
引处的数字参数是指"循环层级"不是"指循环次数",两者有本质区别
switch/case
goto
(PHP 5 >= 5.3.0, PHP 7)
goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。