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"; }?>
希望得到的結果是:
0134
可實際的輸出是:
2
因為整個 continue print "$i\n"; 被當做單一的運算式而求值,所以 print 函數只有在 $i == 2 為真時才被調用(print 的值被當成了上述的可選數字參數而傳遞給了continue)。