PHP switch
Algunas veces queremos comparar la misma variable con diferentes valores, es ahí donde entra la sentencia switch de PHP.
switch
ha sido creado por diferentes peticiones de usuarios, ya que han dicho que el post sobre estructuras de control es largo, de todos modos recomiendo su lectura.
En el ejemplo siguiente comparamos la variable $i
con los valores 0, 1, 2.
switch ($i) { case 0: echo "i es 0"; break; case 1: echo "i es 1"; break; case 2: echo "i es 2"; break; }
Vea que case indica el caso, por ejemplo case 0:
indica que en caso de que $i
sea 0 se ejecutara el código que continúa.
break
Como puede ver dentro de switch
se usa break
, esto es para que no se siga ejecutando el código.
En caso de no usar un break, la sentencia se seguirá ejecutando el siguiente caso también.
Switch sin break en uno de sus casos$i=1; switch ($i) { case 0: echo "i es 0"; break; case 1: echo "i es 1"; case 2: echo "i es 2"; break; }
i es 1i es 2
default
En PHP dentro de switch
además de los casos case
también tenemos a default que siempre va al final del switch
, el código de default será el código que se ejecutara por defecto cuando no se encuentre un valor que corresponda con un case
.
$variable = "valor"; switch ($variable) { case "opcion1": echo "Estás en la opción 1"; break; case "opcion2": echo "Estás en la opción 2"; break; default: echo "No estás en ninguna de las opciones anteriores"; break; }
Comparación en Switch
Algo que tenemos que tener en cuenta es que cuando usamos case x:
en realidad x no tiene por qué ser un valor en sí, sino que también puede ser una expresión. Por ejemplo, supongamos que estamos comparando edades:
$age = 45; switch (true) { case ($age > 60): echo "Edad mayor a 60 años"; break; case ($age > 50): echo "Edad entre 51 y 60 años"; break; case ($age > 40): echo "Edad entre 41 y 50 años"; break; case ($age > 30): echo "Edad entre 31 y 40 años"; break; case ($age > 20): echo "Edad entre 21 y 30 años"; break; default: echo "Edad menor o igual a 20 años"; break; }
Cuando nos conviene Usar Switch en PHP en vez de if
Switch puede convenir en casos donde tengamos que hacer una serie de comparaciones grandes, yo dirá que tenga en cuenta si superamos una serie de comparaciones superior a 4 ya empecemos a utilizar switch.
En casos de comparaciones grandes, switch puede ser más rápido que if, y esta es otra de las características que debería tener en cuenta.
Para finalizar debe tener en cuenta la legibilidad, tenga en cuenta que otro programador puede llegar a tener que leer su código.