web-dev-qa-db-ja.com

PHP-復帰後に中断しますか?

ここでブレークを使用する必要がありますか、それともループを停止して一度だけ戻りますか?

for($i = 0; $i < 5; $i ++) {
    if($var[$i] === '') return false;
    // break;
}

ありがとうございました!

26
headacheCoder

一度だけ実行され、ループを停止して、関数/メソッドを終了します。

これは悪いスタイルだと主張することもできます。後でreturnを見落とすことは非常に簡単です。これは、デバッグとメンテナンスには適していません。

breakの方がきれいかもしれません:

for($i = 0; $i < 5; $i ++) {
    if($var[$i] === '')
     { set_some_condition; 
       break;
     }
}

if (some_condition)
 return;
17
Pekka 웃

returnを使用すると、関数(またはスクリプト全体)が返されます-その後のすべてのコードは実行されません。だからあなたの質問に答えるために:breakはここでは必要ありません。ただし、breakがここでコメント化されていない場合、ループは1回の反復後に停止します。これは、ifステートメントが中かっこ({ ... })を使用していないため、returnステートメントのみをカバーしているためです(つまり、例のbreakは常に実行されます)。

12
Rijk

更新

PHP 7にはreturnが必要です。ループはreturnで終了するため、break;は必要ありません。

break;は通常、必要なアイテムを見つけたときにスイッチまたはループで使用されます。

例:

$items = ['a' , 'b' , 'c']; 

foreach($items as $item) 
{ 
   if($item == 'a') 
   {
       return true; // the foreach will stop once 'a' is found and returns true. 
   }

   return false; // if 'a' is not found, the foreach will return false.
}
8
Ronnie Oosting