2017-06-14 11 views
2

単純なphp配列を繰り返し処理しようとしていて、イテレーションを早期に終了させる奇妙な動作に陥っています。私のPHPバージョンは5.6.3です。私はそうのように、一時的な変数を持つ行のコメントを解除した場合php foreachループでテンポラリ変数を使用するとループが繰り返されない

次のコードは、しかし、予想通りの数字1〜5、...

$values = array(1, 2, 3, 4, 5); 

    foreach ($values as $v) 
     //$temp_variable = $v; 
     echo "v: " . "$v" . "\n"; 

enter image description here

印刷し、私たちは一つだけを取得します繰り返し!

$values = array(1, 2, 3, 4, 5); 

    foreach ($values as $v) 
     $temp_variable = $v; 
     echo "v: " . "$v" . "\n"; 

enter image description here

これは非常に奇妙なようです。使用されていない一時変数を作成すると、私たちのループがレールから外れることはありますか?何かアドバイスをいただければ幸いです。ありがとうございます!

foreach ($values as $v) 
    $temp_variable = $v; //foreach ONLY runs this line in the loop 
    echo "v: " . "$v" . "\n"; 

変更、それに:今

foreach ($values as $v) { 
    $temp_variable = $v; 
    echo "v: " . "$v" . "\n"; 
} 

あなたはそれだけの直後の行を実行するforeach中括弧{}のコードを包含していない場合

答えて

4

これは、奇妙ではありません中カッコ内のすべてがループの一部です。これは、基本的にPHPの他のすべての制御構造と同じです。

+0

あなたはかなり高速に気付きました。よくやった。 +1 – icecub

+1

恐ろしく、ありがとうございます!私はPythonであまりにも多くの時間を費やしてきたと思う... –

関連する問題