goto的使用一直有爭議[5.3版本增加]支持者:goto使用起來比較靈活,而且有些情形能提高程式的效率。
反對者:goto語句使程式的靜態結構和動態結構不一致,使程式難以理解、難以查錯。
跳出迴圈或者switch語句
只能在同乙個檔案和作用域中跳轉,無法跳出乙個函式或者類方法,也無法跳入另乙個函式,更無法跳入任何迴圈或者switch結構中goto編寫的迴圈**:
/** 使用goto語句,迴圈10次 **/
$i = i;
st: //宣告乙個標記st,標記名稱可以自定義,標記後面是冒號
echo "第次迴圈
"; if($i++ == 10)
goto st; //如果符合條件,goto跳到標記處st
end: //宣告乙個標記st,標記名稱可以自定義,標記後面是冒號
//do.... //其他語句繼續編寫
/* 在$i < 10時候,每執行完一次if,就跳到st標記處執行,當 $i == 10時候,跳出迴圈到標記處end
*/
/** switch語句編寫 **/
$var = 2;
switch($var)
one: //定義標記 one
echo
"我才是真的 one!";exit;
two: //定義標記 two
echo
"我才是真的 two!";exit;
three: //定義標記 three
echo
"我才是真的 three!";exit;
/* 最終結果是:我才是真的 two!
*/
goto錯誤寫法
/** got錯誤寫法 **/
goto st; //跳轉到標記處【但是這樣寫法是錯誤的!】
for($i=0, $j=50; $i<100; $i++)
}
goto語句用法
goto語句 其實和switch語句有一點書寫的相似性,下面是寫法 自定義名稱 語句 例如 kel printf 這個位置 上面這個語句中 kel 是自定義的,後面加上冒號,再接上語句。如下面 int main 這段 將會直接列印出 這個位置 因為goto語句直接 跳轉到kel 語句的位置,執行ke...
PHP流程控制之goto語句
goto 操作符可以用來跳轉到程式中的另一位置。該目標位置可以用目標名稱加上冒號來標記,而跳轉指令是 goto 之後接上目標位置的標記。php 中的 goto 有一定限制,目標位置只能位於同乙個檔案和作用域,也就是說無法跳出乙個函式或類方法,也無法跳入到另乙個函式。也無法跳入到任何迴圈或者 swit...
goto 語句和標號
goto 語句及標號可能是有害的,但未必全是無用的。影響控制流程的語句 我們知道 break 只能跳出最內層的迴圈,如果在乙個巢狀迴圈中遇到某個錯誤條件需要立即跳出最外層迴圈做錯誤處理,就可以用到 goto 語句 for for error 出錯處理 這裡的 error 叫做標號 label 任何語...