PHP (01) Control de flujo (04): switch

La instrucción switch se utiliza, como ya dije, para suplantar a largas cadenas de ifelseif, ya que puede ser bastante tedioso, haciendo una comparativa mucho más rápida. A mi personalmente me gusta mucho utilizarlo cuando tengo que hacer ciertas comparaciones muy largas…
La forma de trabajo que tiene es la siguiente:

switch (variable){
    case valorDeLaVariable:
        intruciones
        break;
    case valorDeLaVariable:
        intruciones
        break;
    case valorDeLaVariable:
        intruciones
        break;
...
}

Como se puede ver, la variable entra en el switch y comienza a compararse según los diferentes casos (case) hasta que encuentra su valor, entonces ejecuta las instrucciones de ese case y al llegar al break se sale de switch.
Pero puede ser que varios case tengan el mismo código a ejecutar pudiéndose unir como vemos en el siguiente ejemplo de un switch “real” donde a partir de una variable llamada dia buscará el código a ejecutar:

$dia = 'miercoles';

switch ($dia){
    case 'lunes':
 echo 'el peor día, levantese a las 7:00 am';
 break;
    case 'martes':
    case 'miercoles':
    case 'jueves':
 echo 'levantese a las 7:00 am';
 break;
    case 'viernes':
 echo 'Por fin es viernes!!!, levantese a las 7:00 am';
 break;
    case 'sabado':
 echo 'disfrute de un buen dia de diversion, no hay hora de levantarse';
 break;
    case 'domingo':
 echo 'relajese y descanse, hoy puede levantarse cuando quiera';
 break;
}

En este ejemplo podemos observar como funciona el control, el switch compara la variable con los case, y ejecuta el código, cuando llega al martes miércoles y jueves considera que el código para cada todas estas posibilidades del valor de la variable es el mismo ya que no existe la instrucción break. De hecho si por ejemplo en martes hubiera algo de código sin el break, realzaría esas instrucciones además de las que se encuentran en el jueves.

Como se puede ver es una forma muy sencilla de hacer comparaciones y que tiene mucha más velocidad y ocupa menos recursos que las largas cadenas de ifelseif, siendo muy recomendable para su uso