プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、breakする階層を指定する
結論から書くと

break 【breakする階層】;

と書けばOKです。
例えば

break 2;

と書けば、2階層分まとめてbreakします。

……で説明は終わりですが、味気ないのでサンプルプログラムでも置いておきますね。
こんなコードを実行するとφ(--)

<?php

print "■1階層<br>\n";

for($i = 0; $i < 3; $i++){
    for($j = 0; $j < 3; $j++){
        for($k = 0; $k < 3; $k++){
            print "i = {$i} j = {$j} k = {$k}<br>\n";
            if($k == 0) break;
        }
    }
}

print "<br>\n";
print "■2階層<br>\n";

for($i = 0; $i < 3; $i++){
    for($j = 0; $j < 3; $j++){
        for($k = 0; $k < 3; $k++){
            print "i = {$i} j = {$j} k = {$k}<br>\n";
            if($k == 0) break 2;
        }
    }
}

print "<br>\n";
print "■3階層<br>\n";

for($i = 0; $i < 3; $i++){
    for($j = 0; $j < 3; $j++){
        for($k = 0; $k < 3; $k++){
            print "i = {$i} j = {$j} k = {$k}<br>\n";
            if($k == 0) break 3;
        }
    }
}

こんな結果が表示されますφ(--)

■1階層
i = 0 j = 0 k = 0
i = 0 j = 1 k = 0
i = 0 j = 2 k = 0
i = 1 j = 0 k = 0
i = 1 j = 1 k = 0
i = 1 j = 2 k = 0
i = 2 j = 0 k = 0
i = 2 j = 1 k = 0
i = 2 j = 2 k = 0

■2階層
i = 0 j = 0 k = 0
i = 1 j = 0 k = 0
i = 2 j = 0 k = 0

■3階層
i = 0 j = 0 k = 0

1階層抜ける処理では、break時点で変数$kのループを抜けるので、
$i、$jのループは引き続き行われます。
$iと$jがインクリメントされているのはループしているからです。
$kは値が「0」の時点でループを抜けるので「0」しか表示されていません。

2階層抜ける処理では、break時点で変数$kのループと変数$jのループを抜けるので、
$iのループのみ引き続き行われます。
$iがインクリメントされているのはループしているからです。
$j、$kは値が「0」の時点でループを抜けるので「0」しか表示されていません。

3階層抜ける処理では、break時点で変数$i、$j、$kのループをすべて抜けます。
ですから、すべての値が「0」のときの1回しか表示されていません。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事