Índice de contenidos
Instalación en Windows
Instalación en Ubuntu
Servidores seguros
Páginas dinámicas
Sintaxis básica
Operaciones
Arrays
Formatos de presentación
Operadores
Bucles
Extraer y ord. información
Funciones
Ficheros externos
Imágenes dinámicas
Gestión de directorios
Cookies y sesiones
Clases y objetos
Ficheros en formato PDF
Bases de datos MySQL
PHP y XML
PDO - Bases SQLite / MySQL
MySQL a traves de misqli
Algo de JavaScript y AJAXLa instrucción continue
Si la instrucción break permite interrumpir el desarrollo de un bucle, mediante continue se puede impedir que, bajo unas condiciones determinadas, se ejecuten algunas o todas las instrucciones de un bucle sin que por ello se interrumpa la ejecución de las iteraciones siguientes. Esta instrucción es aplicable tanto a bucles for como a los de tipo while o do while.
Seguramente los ejemplos nos ayudarán a aclarar un poco más la idea. En este primer ejemplo (un bucle for) tiene como condición(if): $i % 2 == 0 que, como recordarás, significa que el resto de la división de $i entre dos($i % 2) sea igual (==) a cero.
En este supuesto (condición de múltiplo de dos) se activará la opción continue y por lo tanto en esa iteración no se ejecuta la instrucción echo y en consecuencia no se imprimirán en pantalla los múltiplos de 2.
<?php for ($i=0;$i<=10;$i++){ #condición de múltiplo de 2 if ($i % 2 ==0 ) { continue ; } echo "La variable I vale ",$i,"<br>"; } ?>
Este otro ejemplo (caso de bucle while) la condición establecida para que se ejecute continue es que el valor de la variable no sea múltiplo de tres, en cuyo caso echo sólo imprimirá los múltiplos de 3.
<?php $i = 0; while ($i++ < 14) { #condición de no múltiplo de 3 usando para distinto la sintaxis != if ($i % 3 !=0){ continue ; } echo "El valor de i es: ",$i,"<br>"; } ?>
En este nuevo ejemplo utilzaremos un bucle do ... while para presentar en pantalla los múltiplos de 11.
<?php $i = 0; do { # condición de no múltiplo de 11. fíjate en la sintaxis alternativa # observa que aquí distinto lo hemos escrito <> if ($i % 11 <>0 ){ continue ; } echo "El valor de i es: ",$i,"<br>"; }while ($i++ < 100) ?>
La instrucción continue n
La instrucción continue puede utilizar un parámetro n con valor entero positivo que, cuando no se indica de forma expresa, toma por defecto el valor 1. La idea es la siguiente. Cuando tenemos bucles anidados el intérprete de PHP los considera numerados correlativamente –de dentro hacia fuera– a partir de UNO.
Cuando se ejecuta continue n se redirecciona la iteración al bucle cuyo número coincide con el valor de n. Obviamente, el valor de n no puede ser nunca mayor que el número de bucles anidados en el script.
Analicemos algunos ejemplos. En este caso el bucle for sería el número UNO y el while sería el número DOS. Cuando se cumpla la condición que activa continue 2 ($i=3) se redirecciona la iteración al paso siguiente de while (bucle número DOS).
<?php $j=0; while (++$j <5) { for($i=1;$i<5;$i++){ if ($i==3){ continue 2; } echo "El valor de j es: ",$j, " y el de i es: ",$i,"<br>"; } } ?>
En este otro ejemplo hemos anidado a tres niveles y hemos escrito continue 3, aunque a la hora de ejecutar los ejemplos podrás ver las tres variantes posibles de ese script modificando los valores de continue n.
<?php $j=0;$k=0; do { //n=3 while (++$j <=5) { // n=2 for($i=1;$i<=5;$i++){ // n=1 if ($i==2){continue 3;} echo "El valor de k es: ",$k," y el valor de j es: ",$j, " y el de i es: ",$i,"<br>"; } } }while ($k++ <=5); ?>