[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。

declare (没用过,手册没看懂)

return 一种结构,不是函数

require

include

require_once

include_once