diferencia - php break foreach continue
php foreach continue (4)
Estoy tratando de saltar a la siguiente iteración del ciclo si ciertas condiciones no se cumplen. El problema es que el ciclo continúa independientemente.
¿Dónde me he equivocado?
Ejemplo de código actualizado en respuesta al primer comentario.
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
El continue
dentro del ciclo for
saltará dentro del ciclo for
, no del ciclo foreach
.
El segundo continuar está en otro ciclo. Este solo "reiniciará" el circuito interno. Si desea reiniciar el bucle externo, debe dar una indicación de cuánto bucle debe subir
continue 2;
Ver Manual
Está llamando continue
en un bucle for
, así que continuará para el bucle for
, no para el foreach
. Utilizar:
continue 2;
Si intenta que su segundo continue
aplicando al bucle foreach
, tendrá que cambiarlo de
continue;
a
continue 2;
Esto le indicará a PHP que aplique la instrucción continue
al segundo ciclo anidado, que es el ciclo foreach
. De lo contrario, solo se aplicará al bucle for
.