## *goto*
(PHP 5 >= 5.3.0, PHP 7)
*goto* 操作符可以用來跳轉到程序中的另一位置。該目標位置可以用目標名稱加上冒號來標記,而跳轉指令是 *goto* 之后接上目標位置的標記。PHP 中的 *goto* 有一定限制,目標位置只能位于同一個文件和作用域,也就是說無法跳出一個函數或類方法,也無法跳入到另一個函數。也無法跳入到任何循環或者 switch 結構中。可以跳出循環或者 switch,通常的用法是用 *goto* 代替多層的 *break*。
**Example #1 *goto* 示例**
```
<?php
goto?a;
echo?'Foo';
?
a:
echo?'Bar';
?>
```
以上例程會輸出:
~~~
Bar
~~~
**Example #2 *goto* 跳出循環示例**
```
<?php
for($i=0,$j=50;?$i<100;?$i++)?{
??while($j--)?{
????if($j==17)?goto?end;?
??}??
}
echo?"i?=?$i";
end:
echo?'j?hit?17';
?>
```
以上例程會輸出:
~~~
j hit 17
~~~
**Example #3 以下寫法無效**
```
<?php
goto?loop;
for($i=0,$j=50;?$i<100;?$i++)?{
??while($j--)?{
????loop:
??}
}
echo?"$i?=?$i";
?>
```
以上例程會輸出:
~~~
Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2
~~~
> **Note**:
> *goto* 操作符僅在 PHP 5.3及以上版本有效。

此漫畫鳴謝 [??xkcd](http://xkcd.com/292)
- 序言
- 簡介
- 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
- 函數
- 用戶自定義函數
- 函數的參數
- 返回值
- 可變函數
- 內部 (內置)函數
- 匿名函數
- 類與對象
- 簡介
- 基本概念
- 屬性
- 類的自動加載
- 構造函數
- 訪問控制(可見性)