curso php: principiante

Fundamentos prácticos y teóricos de php5

capítulo 1.1.1: Instalación en windows
capítulo 1.1.2: instalación en ubuntu
capítulo 2.2: tipos de variables
capítulo 3.1: uso de IF
capítulo 3.2: Uso de for
capítulo 3.3: Uso de Switch
capítulo 3.4: Uso de While
capítulo 3.5: Uso de Do ... While
capítulo 3.6: Uso de foreach

Uso de Switch - Curso de php: principiante

La sentencia SWITCH es una variación del IF, por ejemplo, veamos el siguiente ejemplo:


<?php

if($edad < 18){
   print "Eres menor de edad.";
}elseif($edad == 18){
   print "Ya eres mayor de edad!!!";
}elseif($edad > 65){
   print "Estás jubilado, ¿no?";
}else{
  print "tienes más de 18.";
}

?>

Ahora, podemos simplificarlo, utilizando switch:


<?php
switch($edad){
   case < 18:
      print "Eres menor de edad.";
   break;
   case 18:
      print "Ya eres mayor de edad!!!";
   break;
   case > 65:
      print "Estás jubilado, ¿no?";
   break;
   default:
   print "tienes más de 18.";
}
?>

Como podemos ver switch es un alias de if, y hace lo mismo, pero nos simplifica el código, y lo deja más limpio y claro, eso sí, SWITCH es una sentencia que se ejecuta con más rapidez que su homóloga con IF, por lo que a la hora de optimizar nuestro código PHP, es más limpio, rápido y eficaz usar SWITCH antes que IF.


El funcionamiento es simple, primero llamamos a la función, y le indicamos cual es la variable a evaluar:


switch($edad){

Después la estructura empieza con case más la condición terminada por dos puntos (importante no olvidarlos), en la siguiente línea la sentencia en caso de que se cumpla (terminada en punto y coma) y después break, para cortar el código, porque si no, el programa se ejecutará hasta el final, y le dará a $edad el último valor de la lista.


case < 18:
print "Eres menor de edad.";
break;

Y el valor por defecto, en vez de ir en el ELSE, va con un DEFAULT y sin BREAK, ya que es el último valor y el programa se interrumpe aqui:


default:
print "tienes más de 18.";

Veamos otro ejemplo, en este caso, buscamos que la variable de comparación sea de texto:


<?php
switch($seccion){
   case "directorio":
      print "Bienvenido al directorio de enlaces.";
   break;
   case "formulario":
      print "Rellene el formulario";
   break;
   case "videos":
      print "Estos son los últmos videos";
   break;
   default:
   print "Página de inicio";
}
?> 

En el ejemplo, según la sección en la que estemos, nos mostrará un mensaje u otro, si os fijais, aquí directamente indicamos el valor que queremos comparar:


case "directorio":

No es necesario indicar nada más.