PHP教程之循环讲解(三)

知道91 | PHP | 2014-01-09 | 阅读:6488

前面讲了while 、for、do...while 和 foreach循环,与循环相关联的有两个关键字 continue 和 break

continue

continue 在循环结构用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。

Note: 注意在 PHP 中 switch 语句被认为是可以使用 continue 的一种循环结构。

continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。默认值是 1,即跳到当前循环末尾。

while (list ($key, $value) = each($arr)) {

if (!($key % 2)) { // skip odd members

continue;

}

do_something_odd($value);

}

$i = 0;

while ($i++ < 5) {

echo "Outer
\n";

while (1) {

echo "Middle
\n";

while (1) {

echo "Inner
\n";

continue 3;

}

echo "This never gets output.
\n";

}

echo "Neither does this.
\n";

}

?>

省略 continue 后面的分号会导致混淆。以下例子示意了不应该这样做。


希望得到的结果是:

0
1
3
4

但是结果是

2

因为整个 continue print "$i\n"; 被当做单一的表达式而求值,所以 print 函数只有在 $i == 2 为真时才被调用(print 的值被当成了上述的可选数字参数而传递给了 continue)。

break

break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行。 break 也可以接受一个可选的数字参数来决定跳出几重循环,默认是1,即跳出当前循环。

\n";
}

/* 使用可选参数 */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5
\n"; break 1; /* 只退出 switch. */ case 10: echo "At 10; quitting
\n"; break 2; /* 退出 switch 和 while 循环 */ default: break; } } ?>