1. 程式人生 > >Php中的goto用法

Php中的goto用法

我們先舉個簡單示例:

<?php
goto LABEL; //這個標籤自定義
echo '喬峰';

LABEL:
echo '鳩摩智';

以上例程會輸出:鳩摩智

解釋:
goto 操作符可以用來跳轉到程式中的另一位置。該目標位置可以用目標名稱加上冒號來標記,而跳轉指令是 goto 之後接上目標位置的標記。

PHP 中的 goto 有一定限制,目標位置只能位於同一個檔案和作用域,也就是說無法跳出一個函式或類方法,也無法跳入到另一個函式。

也無法跳入到任何迴圈或者 switch 結構中。可以跳出迴圈或者 switch,通常的用法是用 goto 代替多層的 break。

我們再看一個示例:

<?php
for($i=0, $j=10; $i<20; $i++) {
    while($j--) {
        if($j==6)
            goto end;
    }
}
echo"這裡不會被輸出";
end:
echo "i = $i\n";
echo 'stop here';

上面可以看到直接輸出end後面的了,繼續看:

$number = 1;
switch($number){
    case 1:
        goto one;                 //使用goto跳到one標記處
        echo
"第一名"; //goto已經跳轉,這條語句不執行 case 2: goto two; echo "第二名"; case 3: goto three; echo "第三名"; } one: echo " 武林第一!"; //exit; two: echo " 武林第二!"; //exit; three: echo " 武林第三!"; //exit; /* 最終結果是:武林第一! 武林第二! 武林第三! 注意後面的exit 註釋了,為何不是最終輸出 武林第一,大家可以琢磨下。 */

雖然goto平時用的不多。但有時候在特定場景下效率還是很高的。