goto 操作符用于在程序中跳转到指定位置,目标位置可以使用区分大小写的标记名称加上冒号来标识,而跳转指令则是在 goto 后面跟上目标位置的标记。
PHP 中的 goto 有一些限制,目标位置只能位于同一个文件和作用域内,也就代表着无法跳出一个函数或类方法,也无法跳入另一个函数。此外,也无法跳入任何循环或 switch 结构中。但是,可以使用 goto 代替多层的 break 语句来跳出循环或 switch。
一、goto语法
示例:
<?php goto a; echo 'Foo'; a: echo 'Bar'; ?>
以上示例会输出:
Bar
二、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
三、无效写法
示例:
<?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