switch
 (PHP 4, PHP 5, PHP 7, PHP 8)
 
  La instrucción switch equivale a una serie de instrucciones
  if. En numerosas ocasiones, se necesitará comparar la misma variable (o expresión) con un gran número de valores
  diferentes, y ejecutar diferentes partes de código según el valor
  al que sea igual. Esto es exactamente para lo que sirve la instrucción
  switch.
 
 Nota: 
  
   Téngase en cuenta que, a diferencia de otros lenguajes, la estructura
   continue se aplica
   a las estructuras switch y se comporta de la misma manera
   que break.
   Si se tiene un switch dentro de un bucle, y se desea continuar hasta la siguiente iteración del bucle externo,
   se debe utilizar continue 2.
  
 
 Nota: 
  
   Téngase en cuenta que switch/case provoca una
   comparación amplia.
  
 
 
  En el siguiente ejemplo, cada bloque de código es equivalente.
  Uno utiliza una serie de instrucciones if y
  elseif, y el otro una instrucción de tipo
  switch. En cada caso, la salida es la misma.
  
   Ejemplo #1 Instrucción switch
   
<?php
// Este switch:
switch ($i) {
    case 0:
        echo "i igual 0";
        break;
    case 1:
        echo "i igual 1";
        break;
    case 2:
        echo "i igual 2";
        break;
}
// Equivale a:
if ($i == 0) {
    echo "i igual 0";
} elseif ($i == 1) {
    echo "i igual 1";
} elseif ($i == 2) {
    echo "i igual 2";
}
?>
    
   
 
 
  Es importante entender que la instrucción
  switch ejecuta cada una de las
  cláusulas en orden. La instrucción switch
  se ejecuta línea por línea. Al principio,
  no se ejecuta ningún código. Solo cuando se encuentra una instrucción
  case cuya
  expresión se evalúa a un valor que coincide con el valor de la
  expresión switch, PHP ejecuta entonces las instrucciones correspondientes.
  PHP continúa ejecutando las instrucciones hasta
  el final del bloque de instrucciones del switch,
  o bien hasta que encuentra la instrucción break.
  Si no se puede utilizar la instrucción
  break al final de la instrucción
  case, PHP continuará ejecutando
  todas las instrucciones que siguen. Por ejemplo :
  
 
 
  En este ejemplo, si $i es igual a 0, PHP ejecutará
  todas las instrucciones que
  siguen ! Si $i es igual a 1, PHP ejecutará
  las dos últimas instrucciones. Y solo si $i es
  igual a 2, se obtendrá el resultado
  esperado, es decir, la visualización de
  "i igual 2". Por lo tanto, es importante no olvidar
  la instrucción break (aunque es posible que se omita en ciertas circunstancias).
 
 
  En un comando switch, una condición se evalúa solo una vez, y el resultado se
  compara con cada case.
  En una estructura elseif, las condiciones se evalúan en cada comparación. Si la
  condición es más complicada que una simple
  comparación, o bien forma parte de un bucle,
  switch será más rápido.
 
 
  La lista de comandos de un case puede
  estar vacía, en cuyo caso PHP utilizará la lista de
  comandos del caso siguiente.
  
 
 
  Un caso especial es default. Este caso se utiliza cuando todos
  los otros casos han fallado. Por ejemplo :
  
  Nota: 
   
    Varios casos default generarán un error de nivel
    E_COMPILE_ERROR.
   
  
  Nota: 
   
    Técnicamente, el caso default puede ser colocado
    en cualquier posición. Solo se utilizará si ningún otro caso coincide.
    Sin embargo, por convención, es preferible colocarlo al final.
   
  
 
 
  Si ningún case coincide, y no hay un default, entonces no se ejecutará ningún código, al igual que si ninguna instrucción if fuera verdadera.
 
    Un valor de case puede ser dado en forma de expresión. Sin embargo, esta expresión será
  evaluada sola, y luego comparada de manera aproximada con el valor del switch. Esto significa
  que no puede ser utilizada para evaluaciones complejas del valor del switch. Por ejemplo :
  
 
 
  Para comparaciones más complejas, el valor true puede ser utilizado como valor de switch.
  O, alternativamente, bloques if-else en lugar de switch.
  
 
 
  La sintaxis alternativa para esta estructura de control es
  la siguiente : (para más información, ver
  sintaxis
  alternativas).
  
 
 
  Es posible utilizar un punto y coma en lugar de dos puntos después
  de un case, como sigue :