break
(PHP 4, PHP 5)
break 結束目前 for,foreach,while,do-while 或 switch 結構的執行。
break 可以接受一個可選的數字參數來決定跳出幾重循環。
<?php $arr = array('one', 'two', 'three', 'four', 'stop', 'five'); while (list (, $val) = each($arr)) { if ($val == 'stop') { break; /* You could also write 'break 1;' here. */ } echo "$val<br />\n"; } /* 使用可选参数 */ $i = 0; while (++$i) { switch ($i) { case 5: echo "At 5<br />\n"; break 1; /* 只退出 switch. */ case 10: echo "At 10; quitting<br />\n"; break 2; /* 退出 switch 和 while 循环 */ default: break; } } ?>
continue
(PHP 4, PHP 5)
continue 在循環結構用來跳過本次循環中剩餘的程式碼並在條件求值為真時開始執行下一次迴圈。
Note: 注意在 PHP 中 switch 語句被認為是可以使用 continue 的一種循環結構。
continue 接受一個可選的數字參數來決定跳過幾重循環到循環結尾。預設值是 1,即跳到目前循環末端。
<?php while (list ($key, $value) = each($arr)) { if (!($key % 2)) { // skip odd members continue; } do_something_odd($value); } $i = 0; while ($i++ < 5) { echo "Outer<br />\n"; while (1) { echo "Middle<br />\n"; while (1) { echo "Inner<br />\n"; continue 3; } echo "This never gets output.<br />\n"; } echo "Neither does this.<br />\n"; } ?>
省略 continue 後面的分號會造成混淆。以下例子示意了不該這麼做。
<?php for ($i = 0; $i < 5; ++$i) { if ($i == 2) continue print "$i\n"; } ?>
希望得到的結果是:
0 1 3 4
可實際的輸出是:
2
因為整個 continue print "$in"; 被當做單一的表達式而求值,所以 print$ 函數只有在 $.為真時才被呼叫(print 的值當成了上述的可選數字參數而傳遞給了continue)。