38

通常、すべての反復が完了する前に foreach ループから抜け出したい場合は、単純にブレークを使用します。声明。例えば

foreach($nodelist as $node) {
   if($metCriteria) {
       break;
   }
}

しかし、次の例には switch ステートメントが含まれています。条件の 1 つが満たされた場合は、foreach ループから抜け出す必要があります。(問題は、ブレークがswitchステートメントに使用されていることです)

foreach($nodelist as $node)
{
    switch($node->nodeName) {
        case "a" :
            //do something
            break;
        case "b" :
            //break out of forloop
            break;
    }
}

switch ステートメントで変数を設定し、その後で中断するだけですか? 例えば

$breakout = false;
foreach($nodelist as $node)
{
    switch($node->nodeName) {
        case "a" :
            //do something
            break;
        case "b" :
            $breakout = true;
            break;
    }
    if($breakout === true) break;
}

これが最善の解決策ですか?またはこれは別の方法がありますか?

4

4 に答える 4

69

説明書より(

break はオプションの数値引数を受け入れます。これは、いくつのネストされた囲み構造が分割されるかを示します。

于 2010-07-16T16:27:41.453 に答える
12

ブレーク 2;

break x はその多くのレベルから抜け出します

于 2010-07-16T16:26:28.797 に答える
-2

{ を使用するだけで、コードが「実行」されなくなります。あなたが私に尋ねると、breakステートメントよりもはるかに優れています。

于 2010-07-16T16:30:07.207 に答える