goto操作符是PHP5.3+後新增功能,用來跳轉到程序的另一位置;用法很簡單:goto後面帶上目標位置的標志,在目標位置上用目標名加冒號標記,如下:
復制代碼 代碼如下:
goto a;
echo '';
a:
echo 'http://www.jb51.net';
但是goto的目標位置只能同一文件和作用域【既不能跳轉到一個函數和類方法中】,當然它可以跳出循環,但是不能跳入循環:
復制代碼 代碼如下:
<?php
for($i = 0; $i < 3; $i++)
{
echo $i . '<br>';
if($i == 1) goto end;
}
end :
echo '直接end結束了';
goto操作符可以用來跳轉到程序中的某一指定位置。該目標位置可以用目標名稱 加上冒號來標記。PHP中的goto有一定限制,只能在同一個文件和作用域中跳轉, 也就是說你無法跳出一個函數或類方法,也無法跳入到另一個函數。你也無法跳入到任何循環或者switch 結構中。常見的用法是用來跳出循環或者switch,可以代替多層的break。
復制代碼 代碼如下:
<?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