## *continue*
(PHP 4, PHP 5, PHP 7)
*continue* 在循環結構用用來跳過本次循環中剩余的代碼并在條件求值為真時開始執行下一次循環。
> **Note**: 注意在 PHP 中 [switch](http://php.net/manual/zh/control-structures.switch.php) 語句被認為是可以使用 *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 "$i\\n";* 被當做單一的表達式而求值,所以 [print](http://php.net/manual/zh/function.print.php) 函數只有在 *$i == 2* 為真時才被調用(*print* 的值被當成了上述的可選數字參數而傳遞給了 *continue*)。
***continue* 的更新記錄**
| 版本 | 說明 |
| --- | --- |
| 5.4.0 | *continue 0;* 不再合法。這在之前的版本被解析為 *continue 1;*。 |
| 5.4.0 | 取消變量作為參數傳遞(例如 *$num = 2; continue $num;*)。 |
- 序言
- 簡介
- PHP是什么?
- PHP能做什么?
- 基本語法
- 類型
- boolean(布爾型)
- integer(整型)
- float(浮點型)
- string(字符串)
- array(數組)
- object(對象)
- callable(可調用)
- resource(資源)
- NULL(無類型)
- 偽類型
- 類型轉換的判別
- 變量
- 基礎
- 預定義變量
- 變量范圍
- 可變變量
- 來自PHP之外的變量
- 常量
- 語法
- 魔術常量
- 表達式
- 運算符
- 運算符優先級
- 算術運算符
- 賦值運算符
- 位運算符
- 比較運算符
- 錯誤控制運算符
- 執行運算符
- 遞增/遞減運算符
- 邏輯運算符
- 字符串運算符
- 數組運算符
- 類型運算符
- 流程控制
- if
- else
- elseif/else if
- 流程控制的替代語法
- while
- do-whille
- for
- foreach
- break
- continue
- switch
- declare
- return
- require
- include
- require_once
- include_once
- goto
- 函數
- 用戶自定義函數
- 函數的參數
- 返回值
- 可變函數
- 內部 (內置)函數
- 匿名函數
- 類與對象
- 簡介
- 基本概念
- 屬性
- 類的自動加載
- 構造函數
- 訪問控制(可見性)