PHP: break文 ループ処理を抜け出す

ループを抜け出す break

PHPでループ処理を途中で抜け出したい場合は、break文を使います。 break文を使うと強制的にブロックを抜け出せます

break;

ループをネストしている(入れ子にしている)場合、 内側のループにあるbreak文では外側のループに移ります。 外側のループにあるbreak文ではループ全体を抜け出します。

次のコードでは、変数 i が3以上になるとループを抜け出します。 その結果 echo で表示されるのは「0,1,2」だけです。

for ($i=0; $i < 10; $i++) { 

	if ($i >= 3) break;

	echo $i . " \n";
}

// 実行結果
0
1
2

抜けだす階層を指定する

PHPのbreak文では抜け出す階層を指定することもできます。

break 階層;

「break 2;」と記述すると、2つのループを抜け出すことができます。

次のコードでは、内側のループで $k が5以上になった場合に 「break 2:」と記述しています。
その結果外側のループも抜け出すので、 $i は1度しか実行されずに終了します。

for ($i=0; $i < 10; $i++) { 

	for ($k=0; $k < 10; $k++) { 

		// 階層を2つ抜け出す
		if ($k >= 5) break 2;

		echo $i . ", " . $k . " \n";
	}
}

// 実行結果
0, 0 
0, 1
0, 2
0, 3
0, 4