Chose Language:
Author: Admin/Publisher |finished | checked

PHP switch

Algunas veces queremos comparar la misma variable con diferentes valores, es ahí donde entra la sentencia switch de PHP.

Este apartado de 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.

ejemplo de switch
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.

Ejemplo de uso de default
$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:

Comparacion en switch
$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.

Tenga en cuenta que he separado esta sección de https://blastcoding.com/estructuras-de-control-php/ algunas estructura de control debe tener su propio post para explicarlas lo mejor posible
Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category