PHP基礎之流程控制5——break/continue
(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) continueprint '$in'; }?>
希望得到的結果是:
0134
可實際的輸出是:
2
因為整個?continue print '$in';?被當做單一的表達式而求值,所以?print?函數只有在?$i == 2?為真時才被調用(print?的值被當成了上述的可選數字參數而傳遞給了continue)。
相關文章: