配列をループしていて、ループの途中で小さな問題を発見した場合、...何かを変更して、もう一度やり直す必要があります...に戻る方法はありますか配列から次の値を取得せずにループの先頭に?
continue
これが存在するとは思えませんが、 orのようなキーワードになりますbreak
。実際にはcontinue
、次のアイテムを取得しないことを除いて、 によく似ています。メモリにあるものを維持します。
何も存在しない場合、ループ内の次のキー/値になるような方法で配列に何かを挿入できますか?
多分これは while(array_shift())... で簡単になるでしょう...
または、ループ内の再帰関数が機能する可能性があると思います。
さて、これを入力するにつれて私の質問は進化しているので、この疑似コードを確認してください。
foreach($storage_locations as $storage_location) {
switch($storage_location){
case 'cookie':
if(headers_sent()) {
// cannot store in cookie, failover to session
// what can i do here to run the code in the next case?
// append 'session' to $storage_locations?
// that would make it run, but other items in the array would run first... how can i get it next?
} else {
set_cookie();
return;
}
break;
case 'session':
set_session();
return;
break;
}
}
スイッチの途中でテストされた値を変更するキーワードはないと確信しています...では、このコードをリファクタリングしてフェイルオーバーを取得するにはどうすればよいですか?