Blog
Estructura switch (según sea)
- Publicado por: leo
- Categoría: Curso principiante PHP
Te doy la bienvenida a esta sección del curso en la cual estudiaremos esta segunda estructura de control llama switch. Esta estructura de control guarda mucha similitud con la estructura if/elseif/else; ya que estudian los valores de una variable y ejecutan un bloque de código según sea el caso. Si queremos buscar una diferencia entre las estructuras if/elseif/else y el switch, es que este último tiene un caso especial al final de todas las opciones que nosotros elegimos para la variable, en caso de que el estado o valor de la variable no corresponda con ninguno de los anteriores, en cambio el if/elseif/else saldría automáticamente de la estructura y no ejecutaría nada al no hallar solicitud alguna con una de las condiciones que contiene en su estructura. Continuemos con la lección.
¿Qué es la estructura switch?
La estructura de control switch es una buena alternativa a las sentencias If/Else if/Else en situaciones en las que se desea verificar múltiples valores contra una sola variable o condición. Es realmente efectiva si tienes una variable que puede poseer distintos casos, si lo vemos de esta manera podemos decir que es preferible usar una estructura switch antes de usar una estrutura if/elseif/else, ya que te evitarás escribir tanto código y no te enredarás entre las estructuras anidadas de los if; así que debes estudiar bien para que casos quieres usar una estructura if/elseif/else o una estructura switch. Aquí te muestro la sintaxis básica de una estructura de control switch:
$var = "si"; switch ($var) { case "si": print '$var es igual a si'; break; case "no": print '$var es igual a no'; break; }
La sentencia switch es similar a una serie de sentencias IF en la misma expresión. En muchas ocasiones, es posible que se quiera comparar la misma variable (o expresión) con muchos valores diferentes, y ejecutar una parte de código distinta dependiendo de a que valor es igual. Para esto es exactamente la expresión switch.
Después de ejecutar este fragmento de código, es probable que gran parte de lo que hay aquí tenga sentido para ti. En la primera línea de la sentencia switch, tenemos el identificador “switch” seguido de una variable rodeada de paréntesis. Cada caso incluye un posible valor para la variable.
Las estructuras switch se ejecutan un poco diferente que las sentencias If/Else if/Else. Una vez que el valor de un caso coincide con el valor de la expresión del conmutador, se ejecuta cada una de las siguientes sentencias, incluyendo las siguientes.
Para evitar que esto suceda, se utiliza una sentencia de pausa. “Break;” finaliza la ejecución de la sentencia del conmutador, y permite que el script continúe la ejecución; también puede utilizarse en bucles while o bucles for.
Opcionalmente, también puede incluir un caso especial llamado “default”. Este caso funciona de manera muy parecida a la Declaración de Else, y se ejecutará si se descubre que todos los demás casos son falsos. Este caso debe ser el último que se incluya en la estructura.
<?php $var = "si"; switch ($var) { case "quizas": echo '$var es igual a sí'; break; case "no": echo '$var es igual a no'; break; default: echo 'ninguno de los otros dos casos era cierto, así que esta sentencia será impresa en su lugar.'; } ?>
Directiva exit
Similar a la declaración break, tenermos la declaración de exit. La declaración exit es especialmente útil en situaciones en las que se encuentra con lo que se consideraría un “error fatal” (por ejemplo, si el usuario ha introducido una contraseña incorrecta) o en cualquier otro momento en el que necesitara finalizar la ejecución de un script antes de que éste finalizara de forma natural.
<?php $var = "si"; switch ($var) { case "si": print '$var es igual a si'; exit; case "no": print '$var es igual a no'; break; } echo "esto no se imprimirá, porque el script tendrá que terminar antes de que se alcance esta línea"; ?>
A diferencia de break, exit puede ser usado en cualquier parte de sus scripts, dentro o fuera de las estructuras de control.
La función exit () imprime un mensaje y sale del script actual. Sin embargo, esta función es un alias de la función die ().
Aquí esta su sintaxis principal
exit(mensaje)
La estructura mensaje es requerida, ya que esta especifica el número de mensaje o de estado que se escribirá antes de salir del script. El número de status no se escribirá en la salida.
Ejercicio propuesto
Realiza una estructura switch que dependa de la naturaleza de la variable $dia_de_la_semana que tendrá el valor “viernes“, y escribirá un mensaje, según sea el caso que diga “Hoy es Viernes“.
$dia_de_la_semana = NULL; switch ($dia_de_la_semana) { case 'Lunes': echo "Hola mundo"; break; case 'Martes': echo "Martes de tacos"; break; case 'Miercoles': echo "Hoy es jueves"; break; case 'Jueves': echo "Hoy es Miercoles"; break; case 'Viernes': //echo "viernes"; break; case 'Sabado': echo "Sabado por la noche"; break; case 'Domingo': echo "Hoy es domingo"; break; default: echo "No se encontró la orden"; break; }
Solución al ejercicio propuesto:
$dia_de_la_semana = Viernes; switch ($dia_de_la_semana) { case 'Lunes': echo "Hola mundo"; break; case 'Martes': echo "Martes de tacos"; break; case 'Miercoles': echo "Hoy es jueves"; break; case 'Jueves': echo "Hoy es Miercoles"; break; case 'Viernes': echo "Hoy es Viernes"; break; case 'Sabado': echo "Sabado por la noche"; break; case 'Domingo': echo "Hoy es domingo"; break; default: echo "No se encontró la orden"; break; }
Salida en pantalla
Hoy es Viernes
Son muchas las opciones que te ofrece PHP para la resolución de problemas. Si quieres aprender a utilizar cada una de ellas, te invitamos a iniciar nuestro curso “Aprender PHP”:
[…] Estructura switch (según sea) (AprenderPHP – Curso básico) […]