-1

2 つのループを次々に実行したいのですがreturn、最初のループのステートメントでスクリプトが終了しているようです。

// this runs
for ($i = 0; $i < 3; $i++) {
    try {
        foo();
        return true;
    } catch (Exception $e) {
        try {
            bar();
        } catch (Exception $e) {
            return false;
        }
    }
}


// this doesn't
for ($i = 0; $i < 3; $i++) {
    try {
        foo();
        return true;
    } catch (Exception $e) {
        try {
            bar();
        } catch (Exception $e) {
            return false;
        }
    }
}
4

2 に答える 2

4

returnループ内では使用できません。関数/クラス メソッド用です。

に置き換える必要がreturn falseありbreakます 、ループに相当するもの、return trueおよびcontinue。ただし、John Conde が気付いたcontinueように、この例では省略できます。

function         loop
---------------------------
return true;     continue;
return false;    break;
于 2012-06-04T18:24:50.607 に答える
1

を削除し、return true何も置き換えません。

または、 を使用しますcontinue。次の繰り返しからループを再開します。

アップデート

あなたのコメントに記載されているようreturn falsebreak

于 2012-06-04T18:23:11.727 に答える