break
そふぃのPHP入門 >> PHP言語リファレンス >> PHPの制御構造 >> break

break

break文

break文はswitch文のところで紹介しましたが、他にもfor文・while(do-while)文・foreach文などにも使え、現在の構造を抜ける文です。

基本の構文

  1. <?php
  2. $arr = array( 1,2,3,4,5,6 );
  3. foreach( $arr as $value ){
  4.   if( $value == 4 ){
  5.     break; //$valueが4でループを抜ける
  6.   }
  7.   echo $value."<br />\n";
  8. }
  9. ?>

出力結果

1
2
3

オプション引数

break文ではオプションとして引数を渡す事ができ、ネスト(入れ子)したループ構造を強制的に抜ける事ができます。引数はbreak文から見たループのレベルです。省略した場合は「1」とみなされ、現在の構造のみ抜けます。

  1. <?php
  2. $i = 0;
  3. while( $i <= 10 ){
  4.   echo $i."<br />\n";
  5.   $i++;
  6.  
  7.   switch( $i ){
  8.     case 3:
  9.       break 1; //switch構造を抜ける 1は省略可能
  10.  
  11.     case 7:
  12.       break 2; //while構造まで抜ける
  13.   }
  14. }
  15. ?>

出力結果

0
1
2
3
4
5
6

上のサンプルは、もともと0から10までの数をカウントアップしながら表示するスクリプトですが、その中に7でループを抜ける処理が入っているので、6までしか表示しません。

switch文の最初の「break 1」の1は省略可能です。「break 1」の方はswitch文を抜けるだけなのでこのスクリプトでは何の意味もありません(笑)。ただ単に例として出しただけです。

「break 2」の方はそのbreakから見た2番目の構造、つまりwhile文まで抜ける事になりますので、ループ自体を終了します。

このようにループを強制的に終了させるにはbreakを使いますが、スキップしたい時、つまり完全に終了してしまうのではなくその処理だけを飛ばして元のループに戻りたい時などはcontinueを使います。

PHP5徹底攻略
PHP5徹底攻略 PHPのバイブル、赤マンモスです。
独習PHP
独習PHP 入門から、PEAR、Smartyまで。