2012-04-03 10 views

答えて

5

ループ内にwhileループを置くことはできませんが、これは上記と同じ動作をします。ただし、カウンタを使用するように変更し、無限ループを防ぐためにX回の再試行の後に停止する必要があります。

foreach($pics AS $pic){ 
    while(!upload($pic)); 
} 
0

手動breakそれのうち、あなたのコードが成功したときに一定回数(あなたの最大再試行回数を)ループ別のループで、またはあなたまで、あなたのifを囲む必要があります。

私はおそらくgotoを使用することができますが、それは一般的に悩まされ、とにかく内側のループと同じことをします。

+0

私はgotoを一度も使用していませんが、コードをスキップするだけでは機能しません。 – Bradmage

+0

@BradleyForster正直言っていいことはありません。私がCのバックグラウンドから持っていたと思っただけで、PHPの制限が何であるか分かりません。 – spencercw

0
function dosomething() { 
    foreach($pics AS $pic){ 
     if(!upload($pic)){ 
      break; 
     } 
    } 
    $success = true; 
} 

$success=false; 
while(!$success) dosomething(); 

これは理論的に動作する必要がありますが。
決して終わりのないループの可能性があるので、私は絶対に悪いプログラミング練習をするでしょう。

関連する問題