Diferencias entre break y continue en PHP

Diferencias entre break y continue en PHPbreak y continue son dos de las sentencias más utilizadas en PHP para manipular el flujo de las iteraciones en las estructuras de control cíclicas (for, foreach, while, do-while o switch). Ambas cortan el ciclo actual pero con una importante diferencia:

  • break finaliza la ejecución de la estructura control en curso.
  • continue finaliza la iteración actual de la estructura control y se inicia una nueva iteración.
Esto implica, básicamente que:
while ( $foo ) {   <--------------------┐
    continue;      --- vuelve aquí -----┘
    break;         ----- salta aquí ----┐
}
                  <---------------------┘
En otras palabras, continue le dice a PHP que la iteración actual se ha acabado y debe empezar en la evaluación de la condición que abre la estructura de control. Por su parte, break le dice a PHP que la evaluación de la estructura control actual ha terminado y que no siga haciendo iteraciones.

Si hacemos un simple test como este:
$letters = [ 'A', 'B', 'C' ];
foreach ( $letters as $letter) {
    if( 'A' == $letter ) {
        continue;
        echo 'Esto nunca se imprimirá';
    }
    echo $letter;
}
Se imprimirá la cadena BC ya que cuándo $letter es igual a A la iteración no alcanza la sentencia echo $letter; sino que vuelve al principio del foreach.

Por el contrario, si hacemos:
$letters = [ 'A', 'B', 'C' ];
foreach ( $letters as $letter) {
    if( 'A' == $letter ) {
        break;
        echo 'Esto nunca se imprimirá';
    }
    echo $letter;
}
No se imprimirá nada ya que en la primera iteración, cuándo $letter es igual a A, se finaliza la ejecución de la estructura foreach y ninguno de los echo es alcanzado.

Cuándo break o continue se utilizan en una estructura de control anidada en otra se puede especificar el número de estructuras a las que afectan. El número por omisión es 1 y afecta sólo a la estructura actual. Estas dos estructuras serían iguales:
while ( $foo ) {
    $items = [ 1, 2, 3 ];
    foreach( $items as $item ) {  <--------------------┐
        continue;                 --- vuelve aquí -----┘
    }
}

// Esta estructura es igual a la anterior
while ( $foo ) {
    $items = [ 1, 2, 3 ];
    foreach( $items as $item ) {  <--------------------┐
        continue 1;               --- vuelve aquí -----┘
    }
}
Pero podemos hacer que vuelva a la estructura while externa con continue 2:
while ( $foo ) {                 <--------------------┐
    $items = [ 1, 2, 3 ];
    foreach( $items as $item ) {
        continue 2;               --- vuelve aquí ----┘
    }
}
O con break:
while ( $foo ) {
    $items = [ 1, 2, 3 ];
    foreach( $items as $item ) {
        break 2;               --- salta aquí -----┐
    }
}
                             <--------------------┘

Referencias


Estructuras de control: break. Manual PHP.
Estructuras de control: continue. Manual PHP.


<a onclick=Tutoriales En Linea" class='avatar avatar-64 photo' height='64' width='64'>
  • Autor:
  • Editor:
      Tutoriales En Linea
  • Fecha:2019-08-11
  • Categorias: Lenguajes De Programacion php WebSite webmasters Noticias Tutorial



Información
Usuarios que no esten registrados no pueden dejar comentarios, te invitamos a que te registre!