如何继续失败的PHP循环

时间:2018-11-20 04:40:55

标签: php laravel loops foreach

您如何继续执行迭代失败的循环,但仍希望运行循环的其余部分。

$arr = [1, 2, 3, 4];

foreach($arr as $val) {
    if($val == 2) {
        throw new \Exception('Value = 2');
    }

    try {
        echo $val;
    }
    catch(\Execption $e) {
        echo $e;
    }
}

我该怎么做

2 个答案:

答案 0 :(得分:1)

如果要遵循这种模式,可以尝试使用这种模式。

$arr = [1, 2, 3, 4];

foreach($arr as $a) {
    try {
        if ( $a == 2 ) {
            throw new Exception('Exception');
        }

        echo $a.' ';     
    }
    catch(Exception $e) {
        echo 'Message ';
    }

    echo PHP_EOL;
}

这将有助于避免中断循环

结果将为:

1 Message 3 4

希望有帮助。

答案 1 :(得分:0)

您可以创建一个日志,而不是引发异常

Log::error('Array value = ' . $val);
continue;

这将记录问题,但仍允许处理其余数组

这里有更多详细信息:

https://laravel.com/docs/5.7/logging