如果不满足某些条件,我试图跳到循环的下一次迭代。问题是循环无论如何都在继续。
我哪里出错?
针对第一条评论更新了代码示例。
foreach ($this->routes as $route => $path) {
$continue = 0;
...
// Continue if route and segment count do not match.
if (count($route_segments) != $count) {
$continue = 12;
continue;
}
// Continue if no segment match is found.
for($i=0; $i < $count; $i++) {
if ($route_segments[$i] != $segments[$i] && ! preg_match('/^\x24[0-9]+$/', $route_segments[$i])) {
$continue = 34;
continue;
}
}
echo $continue; die(); // Prints out 34
答案 0 :(得分:100)
如果您尝试将第二个continue
应用于foreach
循环,则必须从
continue;
到
continue 2;
这将指示PHP将continue
语句应用于第二个嵌套循环,即foreach
循环。否则,它只适用于for
循环。
答案 1 :(得分:17)
答案 2 :(得分:10)
您在continue
循环中呼叫for
,因此将继续for
循环,而不是foreach
循环。使用:
continue 2;
答案 3 :(得分:0)
continue
循环中的for
将在for
循环内跳过,而不是foreach
循环。