php foreach продолжить
Я пытаюсь перейти к следующей итерации цикла, если не соблюдаются определенные условия. Проблема в том, что цикл продолжается независимо.
где я ошибся?
обновлен пример кода в ответ на первый комментарий.
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
4 ответов
если вы пытаетесь иметь свой второй continue
применить к foreach
loop, вам придется изменить его с
continue;
to
continue 2;
это проинструктирует PHP применить continue
оператор второго вложенного цикла, который является foreach
петли. В противном случае он будет применяться только к for
петли.
второй дальше - это в другом цикле. Это будет только "перезапустить" внутренний цикл. Если вы хотите перезапустить внешний цикл, вам нужно дать дальше подсказка, сколько петель он должен идти вверх
continue 2;
посмотреть руководство
вы призываете continue
на for
цикл, поэтому продолжить будет сделано для for
петли, а не foreach
один. Использовать:
continue 2;