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平時用的不多。但有時候在特定場景下效率還是很高的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM