私はPHPのforeach()
を使用しています。時には内部コードが私の望むことをしないとき、私は同じレベルをやり直す代わりに次のものへ。ループをスキップせずに繰り返す代わりに「続行」する
これは可能ですか?
例:
foreach($pics AS $pic){
if(!upload($pic)){
again; // something like this
}
}
私はPHPのforeach()
を使用しています。時には内部コードが私の望むことをしないとき、私は同じレベルをやり直す代わりに次のものへ。ループをスキップせずに繰り返す代わりに「続行」する
これは可能ですか?
例:
foreach($pics AS $pic){
if(!upload($pic)){
again; // something like this
}
}
ループ内にwhileループを置くことはできませんが、これは上記と同じ動作をします。ただし、カウンタを使用するように変更し、無限ループを防ぐためにX回の再試行の後に停止する必要があります。
foreach($pics AS $pic){
while(!upload($pic));
}
手動break
それのうち、あなたのコードが成功したときに一定回数(あなたの最大再試行回数を)ループ別のループで、またはあなたまで、あなたのif
を囲む必要があります。
私はおそらくgoto
を使用することができますが、それは一般的に悩まされ、とにかく内側のループと同じことをします。
function dosomething() {
foreach($pics AS $pic){
if(!upload($pic)){
break;
}
}
$success = true;
}
$success=false;
while(!$success) dosomething();
これは理論的に動作する必要がありますが。
決して終わりのないループの可能性があるので、私は絶対に悪いプログラミング練習をするでしょう。
私はgotoを一度も使用していませんが、コードをスキップするだけでは機能しません。 – Bradmage
@BradleyForster正直言っていいことはありません。私がCのバックグラウンドから持っていたと思っただけで、PHPの制限が何であるか分かりません。 – spencercw