array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'es', ), 'this' => array ( 0 => 'control-structures.continue.php', 1 => 'continue', ), 'up' => array ( 0 => 'language.control-structures.php', 1 => 'Estructuras de Control', ), 'prev' => array ( 0 => 'control-structures.break.php', 1 => 'break', ), 'next' => array ( 0 => 'control-structures.switch.php', 1 => 'switch', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'es', 'path' => 'language/control-structures/continue.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
continue
(PHP 4, PHP 5, PHP 7, PHP 8)
continue
se utiliza dentro de las estructuras iterativas para
saltar el resto de la iteración actual del bucle y continuar la ejecución
en la evaluación de la condición, para luego comenzar la siguiente iteración.
Nota: En PHP, la sentencia switch se considera una estructura iterativa para los propósitos de
continue
.continue
se comporta igual quebreak
(cuando no se proporcionan argumentos). Si unswitch
está dentro de un bucle,continue 2
continurá con la siguiente iteración del bucle externo.
continue
acepta un argumento numérico opcional,
que indica a cuántos niveles de bucles encerrados se ha de saltar
al final. El valor por omisión es 1
, por lo que salta
al final del bucle actual.
<?php
while (list($clave, $valor) = each($arr)) {
if (!($clave % 2)) { // saltar los miembros pares
continue;
}
hacer_algo($valor);
}
$i = 0;
while ($i++ < 5) {
echo "Exterior<br />\n";
while (1) {
echo "Medio<br />\n";
while (1) {
echo "Interior<br />\n";
continue 3;
}
echo "Esto nunca se imprimirá.<br />\n";
}
echo "Ni esto tampoco.<br />\n";
}
?>
Omitir el punto y coma después del continue
puede llevar a
confusión. He aquí un ejemplo de lo que no se debe hacer.
<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue
print "$i\n";
}
?>
Se esperaría que el resultado fuera:
0 1 3 4
pero, en versiones de PHP anteriores a la 5.4.0, la salida de este script será:
2
debido a que continue print "$i\n";
se evalúa completo
como una sola expresión, y así print se llama solamente
cuando $i == 2
es verdadero. (El valor de retorno de
print
es pasado a continue
como el
argumento numérico.)
Nota:
A partir de PHP 5.4.0, el ejemplo anterior emitirá un error
E_COMPILE_ERROR
.
Versión | Descripción |
---|---|
5.4.0 |
continue 0; ya no es válido. En versiones anteriores era interpretado
de la misma manera que continue 1; .
|
5.4.0 |
Se eliminó la posibilidad de pasar variables (por ejemplo, $num = 2; continue $num; )
como el argumento numérico.
|