Я пытаюсь перейти к следующей итерации цикла, если определенные условия не выполняются. Проблема в том, что цикл продолжается независимо.php foreach continue
Где я пошла не так?
Обновленный образец кода в ответ на первый комментарий.
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
Вы переписываете `$ continue`. Вполне возможно, что он будет установлен в 1, затем 2 в ваших итерациях цикла. – 2010-11-24 18:11:25
Установите `$ continue = 0;` сразу после `foreach` ... Готов поспорить, вы больше не получите` 1`. A для 2, вам нужно сказать, чтобы он продолжал до 2 уровней, поэтому `continue 2;`, иначе он просто перейдет к следующей итерации цикла `for` ... – ircmaxell 2010-11-24 18:14:44