Ver índice
La función switch

        Ocultar índice  

   Índice de contenidos
   Instalación en Windows
   Instalación en Ubuntu
   Servidores seguros
   Páginas dinámicas
   Sintaxis básica
   Operaciones
   Arrays
   Formatos de presentación
   Operadores
   Bucles
   Extraer y ord. información
   Funciones
   Ficheros externos
   Imágenes dinámicas
   Gestión de directorios
   Cookies y sesiones
   Clases y objetos
   Ficheros en formato PDF
   Bases de datos MySQL
   PHP y XML
   PDO - Bases SQLite / MySQL
   MySQL a traves de misqli
   Algo de JavaScript y AJAX


La función switch

Una alternativa al uso de condicionales del tipo if es la función switch. Se trata de un condicional que evalúa una variable y, según su valor, ejecuta unas instrucciones u otras. Su sintaxis es la siguiente:

switch ( variable ) {
   case n1:
      ...instrucciones a ejecutar en el caso de que la variable sea igual a n1...
   case n2:
      ..instrucciones a ejecutar en el caso de que la variable sea igual a n2...
}

Cuando se usa esta sintaxis se ejecutan todas aquellas instrucciones que han sido incluidas a partir de la etiqueta en la que el valor que sigue a case coincide con el valor de la variable. Es decir, si en la expresión anterior la variable es igual a n1 se ejecutarían todas las instrucciones, tanto las que van detrás de case n1 como las que van detrás de case n2.

La forma más habitual de uso de esta función es esta:

switch ( variable ) {
   case n1:
      ...instrucciones a ejecutar en el caso de que la variable sea igual a n1...
break;
   case n2:
      ..instrucciones a ejecutar en el caso de que la variable sea igual a n2...
break;
}

Esta opción incluye antes de cada nuevo case la función de ruptura break. Cuando PHP encuentra el break interrumpe la ejecución y no la reanuda hasta la instrucción siguiente a la } que cierra el switch. Insertando break en cada una de las opciones case, sólo se ejecutarían las instrucciones contenidas entre case num y ese break.

default:

Bajo este nombre (default:) se pueden incluir dentro de la función switch un conjunto de instrucciones que solo serán ejecutadas en el caso de que el valor de la variable no coincida con ninguno de los case. Su comportamiento es equivalente a else en el condicional if.

Ejemplos con switch

<?php
# esta es la variable que controlará la función switch
$i=1;

switch ($i) {

#insertamos la etiqueta case 0 y a continuación
# las instrucciones correspondientes
	
     case 0:
         print "i es igual a 0 - No he puesto el break<br>";

# insertamos la etiqueta case 1 y a continuación
# las instrucciones correspondientes
# como no hemos puesto break y en este ejemplo $i=1
# se ejecutarán todas las instrucciones escritas
# de aquí en adelante
        
     case 1:
          print "i es igual a 1 - No he puesto el break<br>";      
     case 2:
          print "i es igual a 2 - No he puesto el break<br>";
        
 };
# ahora incluiremos break al final de las intrucciones de cada case
# con ello lograremos que solo se ejecuten las intrucciones correspondientes
# a cada uno de ellos
switch ($i) {
     case 0:
         print "i es igual a 0 - Ahora lleva break<br>";
         break;
     case 1:
         print "i es igual a 1 - Ahora lleva break<br>";
         break;
     case 2:
         print "i es igual a 2 - Ahora lleva break<br>";
         break;
 }
   ?>   
ejemplo53.php
<?php $i=3;
switch ($i) {
     case 0:
         print "La variable i es 0<br>";
         break;
     case 1:
         print "La variable i es 1<br>";
         break;
    case 2:
         print "La variable i es 2<br>";
         break;
# al intoducir default y dado que $i=3 se ejecutarán
# las instrucciones contenidas aquí ya que la variable
# no coincide con ninguno de los case establecidos
     default:
         print "La variable i es mayor que dos o menor que cero";
         break;
 }
   ?>  
ejemplo54.php