-1

我想一个接一个地运行两个循环,但似乎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 falsebreak,循环等效项,并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 回答