PHP 中 break 可接受一個數字參數 n,表示跳出第 n 層循環(由內而外計數,預設為 1)。本文透過具體範例說明其在多層巢狀循環中的實際表現。
<?php
// 當前循環層級由裡到外依次遞增,break 預設為 1
for ($i = 0; $i < 3; $i++) {
foreach (array(1,2,3) as $val) { // 第 2 層
foreach (array(1,2,3) as $val) { // 第 1 層(最內層)
echo "1層循環<br/>";
break 2; // 跳出第 2 層循環(即外層 foreach)
}
echo "2層循環<br/>";
}
echo "3層循環<br/>";
}
// 結果:
// 1層循環
// 3層循環
// 1層循環
// 3層循環
// 1層循環
// 3層循環
?>
1層循環。break 2,跳出第 2 層循環(外層 foreach),直接進入外層 for 循環的下一次迭代。2層循環 永遠不會輸出,而 3層循環 會在每次外層 for 迭代結束時輸出。for 共執行 3 次($i = 0,1,2),故輸出三組 1層循環 + 3層循環。break n 的 n 代表要跳出的循環層數,從內層向外計數。n 大於實際巢狀深度,會跳出所有循環並繼續執行最外層後續代碼。break 1,僅跳出當前最內層循環。善用 break n 可簡化多層循環的提前退出邏輯,避免使用旗標變數。