⊗ppPmCdBNM 100 of 447 menu

La opcionalidad de break en PHP

El comando break es opcional. Sin embargo, sin él, el comportamiento de los bloques case será inesperado. Veamos un ejemplo. Supongamos que tenemos el siguiente código:

<?php $num = 1; switch ($num) { case 1: echo 1; break; case 2: echo 2; break; case 3: echo 3; break; } ?>

Eliminemos todos los break, y en la variable $num, para empezar, pongamos el número 3.

Por ahora, todo funcionará como antes:

<?php $num = 3; // supongamos que aquí está el número 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Después de ejecutar, el código mostrará 3 - todo está bien ?>

Ahora pongamos en la variable $num el número 2. En este caso, se ejecutará case 2 como se esperaba, y luego, inesperadamente, también case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Después de ejecutar, el código mostrará 2 y luego 3 ?>

Y si en la variable $num ponemos el número 1, entonces se ejecutarán todas las construcciones case:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Después de ejecutar, el código mostrará 1, luego 2 y luego 3 ?>

Es decir, resulta que ante la ausencia de break, después de ejecutar el case previsto, también se ejecutarán todos los case debajo de él. A veces, esta característica se utiliza al resolver problemas.

En el siguiente ejemplo, si la variable $num tiene el valor 1 o 2, entonces en la variable $res se escribirá 'a'. Si la variable $num tiene el valor 3, entonces en la variable $res se escribirá 'b':

<?php $num = 1; switch ($num) { case 1: case 2: $res = 'a'; break; case 3: $res = 'b'; break; } echo $res; ?>

Arriba escribí que a veces se utiliza esta característica, pero en general, no recomiendo usarla, ya que el código se vuelve poco evidente.

Es más claro resolver tal problema con if:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar