問題
當 PHP 在執(zhí)行代碼過程篙耗,在某一時刻我們希望它能跳轉到某一特定位置繼續(xù)執(zhí)行代碼,該怎么做呢宪赶?
回答
在 PHP 中宗弯,我們可以使用 goto 操作符來使 PHP 代碼執(zhí)行器跳轉到程序中某一特定位置。goto 的使用有一定限制搂妻,如:無法跳出一個函數(shù)或類蒙保,無法從外部跳入到一個函數(shù),無法跳入到任何循環(huán)或者 switch 結構中叽讳。但可以跳出循環(huán)或者 switch追他,通常的用法是用 goto 代替 switch 中嵌套多層的 break。
語法
goto 會使 PHP 直接跳轉到指定標志位置岛蚤。
goto標志;
代碼塊
標志:
代碼塊
示例
例 1 —— 嘗試跳入循環(huán)
<?php
gotoloop;
for($i=0; $i<3; $i++) {
????while($i++) {
????????loop:
????}
}
echo"End";
運行結果:
Fatal error: 'goto'into loop orswitchstatement is disallowed in F:\index.php on line 3
從運行結果可以看出,goto 不能從外部直接跳入循環(huán)中懈糯。
例 2 —— 一個簡單的跳轉
<?php
gotoloop;
echo'這是第一個句子涤妒。';
loop:
echo'這是第二個句子。';
運行結果:
這是第二個句子赚哗。
例 3 —— 跳出循環(huán)
<?php
for($i=0; $i<10; $i++) {
????while($i++) {
????????if($i==5) gotoend;
????}
}
echo'此時 $i=10';
end:
echo'此時 $i='. $i;
運行結果:
此時 $i=5
從例 3 運行結果可以看出她紫,在我們需要從循環(huán)中跳出的時候,使用 goto 非常方便屿储。
提示
雖然 goto 使用起來非常方便贿讹,但是隨意使用 goto 語句極易造成代碼邏輯混亂,所以應當謹慎使用够掠。