PHP foreach continuar
Estou a tentar saltar para a próxima iteração do laço, se certas condições não forem cumpridas. O problema é que o laço continua independentemente.
Onde é que eu errei?
actualização da amostra de código em resposta ao primeiro comentário.
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
37
4 answers
Se está a tentar que o seu segundo continue
se aplique ao laço foreach
, terá de o mudar de
continue;
A
continue 2;
Isto irá instruir o PHP para aplicar a instrução continue
ao segundo laço aninhado, que é o laço foreach
. Caso contrário, aplicar-se-á apenas ao laço for
.
92
Author: cdhowie, 2010-11-24 18:12:36
O segundo continua está noutro ciclo. Este só vai "reiniciar" o laço interior. Se quiser reiniciar o ciclo exterior, tem de dar continuar uma dica da quantidade de ciclos que deve subir
continue 2;
Ver Manual
14
Author: KingCrunch, 2010-11-24 18:12:48
Você está chamando continue
em um loop {[[2]}, então continue será feito para o loop for
, não para o loop foreach
. Uso:
continue 2;
10
Author: netcoder, 2010-11-24 18:13:03
O continue
dentro do laço for
irá saltar dentro do laço for
, não o laço foreach
.
0
Author: BeemerGuy, 2010-11-24 18:13:01