## goto

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

此漫画鸣谢 » xkcd

`goto` 操作符可以用来跳转到程序中的另一位置。该目标位置可以用 区分大小写 的目标名称加上冒号来标记，而跳转指令是 `goto` 之后接上目标位置的标记。PHP 中的 `goto` 有一定限制，目标位置只能位于同一个文件和作用域，也就是说无法跳出一个函数或类方法，也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch，通常的用法是用 `goto` 代替多层的 `break`。

示例 #1 `goto` 示例

`<?php
goto a;
echo 'Foo';
a:
echo 'Bar';
?>`

以上示例会输出：

    Bar

示例 #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

示例 #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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open