break
break文
break文はswitch文のところで紹介しましたが、他にもfor文・while(do-while)文・foreach文などにも使え、現在の構造を抜ける文です。
基本の構文
- $arr = array( 1,2,3,4,5,6 );
- foreach( $arr as $value ){
- if( $value == 4 ){
- break; //$valueが4でループを抜ける
- }
- echo $value."<br />\n";
- }
出力結果
1
2
3
2
3
オプション引数
break文ではオプションとして引数を渡す事ができ、ネスト(入れ子)したループ構造を強制的に抜ける事ができます。引数はbreak文から見たループのレベルです。省略した場合は「1」とみなされ、現在の構造のみ抜けます。
- $i = 0;
- while( $i <= 10 ){
- echo $i."<br />\n";
- $i++;
- switch( $i ){
- case 3:
- break 1; //switch構造を抜ける 1は省略可能
- case 7:
- break 2; //while構造まで抜ける
- }
- }
出力結果
0
1
2
3
4
5
6
1
2
3
4
5
6
上のサンプルは、もともと0から10までの数をカウントアップしながら表示するスクリプトですが、その中に7でループを抜ける処理が入っているので、6までしか表示しません。
switch文の最初の「break 1」の1は省略可能です。「break 1」の方はswitch文を抜けるだけなのでこのスクリプトでは何の意味もありません(笑)。ただ単に例として出しただけです。
「break 2」の方はそのbreakから見た2番目の構造、つまりwhile文まで抜ける事になりますので、ループ自体を終了します。
このようにループを強制的に終了させるにはbreakを使いますが、スキップしたい時、つまり完全に終了してしまうのではなくその処理だけを飛ばして元のループに戻りたい時などはcontinueを使います。





