新聞中心
在PHP中,有多種方法可以跳出循環(huán),以下是五種常見的方法:

1、break語句
break語句用于終止當前循環(huán),當遇到break語句時,循環(huán)將立即終止,不再執(zhí)行剩余的代碼。
示例:
for ($i = 0; $i < 10; $i++) {
if ($i == 5) {
break;
}
echo $i . "
";
}
輸出結(jié)果:
1 2 3 4
2、continue語句
continue語句用于跳過當前循環(huán)的剩余部分,直接進入下一次循環(huán)。
示例:
for ($i = 0; $i < 10; $i++) {
if ($i == 5) {
continue;
}
echo $i . "
";
}
輸出結(jié)果:
1 2 3 4 6 7 8 9
3、return語句(僅適用于函數(shù))
return語句用于從函數(shù)中返回一個值,如果在循環(huán)內(nèi)部使用return語句,函數(shù)將立即結(jié)束,不再執(zhí)行后續(xù)的代碼。
示例:
function loopUntilFive() {
for ($i = 0; $i < 10; $i++) {
if ($i == 5) {
return $i;
}
}
return "未找到5";
}
echo loopUntilFive(); // 輸出:5
4、goto語句(不推薦使用)
goto語句可以將程序流程跳轉(zhuǎn)到指定的標簽位置,雖然可以使用goto語句跳出循環(huán),但這種方法通常不推薦使用,因為它可能導(dǎo)致代碼難以理解和維護。
示例:
$i = 0;
loop_label: for ($i = 0; $i < 10; $i++) {
if ($i == 5) {
goto loop_label; // 跳轉(zhuǎn)到loop_label標簽處,終止循環(huán)
}
echo $i . "
";
}
輸出結(jié)果:同上(break方法的結(jié)果)
5、set_error_handler和restore_error_handler函數(shù)(僅適用于錯誤處理)
set_error_handler函數(shù)用于設(shè)置自定義的錯誤處理函數(shù),而restore_error_handler函數(shù)用于恢復(fù)之前的錯誤處理函數(shù),通過這兩個函數(shù),可以在循環(huán)中捕獲錯誤并跳出循環(huán),這種方法通常用于處理異常情況。
示例:
function customErrorHandler($errno, $errstr, $errfile, $errline) {
echo "Error: [$errno] $errstr in $errfile on line $errline";
return true; // 返回true以阻止錯誤繼續(xù)傳播(可選)
}
set_error_handler("customErrorHandler"); // 設(shè)置自定義錯誤處理函數(shù)
$i = 0;
while (true) { // 無限循環(huán),直到遇到錯誤或手動終止循環(huán)為止(break)
if ($i == 5) { // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán)(set_error_handler(null)))set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán)(restore_error_handler()) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++ echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore_error_handler(); break; } // 輸出數(shù)字并增加計數(shù)器 $i++; echo $i . "
"; // 如果遇到錯誤條件,觸發(fā)自定義錯誤處理函數(shù)并跳出循環(huán) set_error_handler(null); break; } // 恢復(fù)默認的錯誤處理函數(shù)并跳出循環(huán) restore
文章標題:PHP循環(huán)學(xué)習(xí)五:如何跳出循環(huán)?5種方法淺析
瀏覽地址:http://fisionsoft.com.cn/article/dpjhche.html


咨詢
建站咨詢
