Este post continúa con el post de los condicionales en PHP. Este tutorial explica el funcionamiento de la declaración switch y de sus componentes.
Una declaración switch se usa en caso de que el resultado de una variable pueda tener múltiples valores, y según dicho valor, se ejecute una función diferente. En una situación similar, con declaraciones if y elseif, daría lugar un código largo y engorroso.
Para el ejemplo, supongamos que tenemos el inventario de un supermercado, y según el número o string que introduzcamos se sacará una categoría u otra.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php $categoria = "otros"; switch ($categoria) { case 1: echo "Has seleccionado refrescos"; break; case 2: echo "Has seleccionado congelados"; break; case 3: echo "Has seleccionado alcohol"; break; case 4: echo "Has seleccionado aperitivos"; break; case "otros": echo "Has seleccionado otros"; break; } ?> |
La declaración switch va seguido de la variable $categoria dentro de un paréntesis. El valor que está dentro del parenterésis recorre los diferentes case para comprobar coincidencias. En caso de haber una coincidencia se ejecuta el código que tiene a continuación.
A diferencia de una declaración if, no se usan corchetes para los comandos case. Cada comando case comienza con 2 puntos y termina con la declaración break.
El comando break
Cuando una de las condiciones del case se cumplen se ejecuta el código dentro de ellas y se termina con el comando break. Este comando indica a PHP salir del switch y seguir ejecutando el resto del código.
En caso de no poner un break, las siguientes condiciones case se ejecutarían hasta encontrar un comando break. Esto no quiere decir que sea obligatorio usarlo de hecho, se usa en programación avanzada, pero está bien saberlo. Por ejemplo, supongamos que no pongo break a partir del segundo case
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php $categoría = 2; switch ($categoría) { case 1: echo "Has seleccionado refrescos "; break; case 2: echo "Has seleccionado congelados <br>"; case 3: echo "Has seleccionado alcohol <br>"; case 4: echo "Has seleccionado aperitivos <br>"; case "otros": echo "Has seleccionado otros <br>"; } ?> |
Cumpliendo el segundo case, se ejecutarían los siguientes.
Ejemplo de swtich sin break
La acción Default
Siempre puede darse la posibilidad de que ninguna de las condiciones se cumpla. Por consiguiente, existe el comando default, que ejecuta el código en caso de que ninguno de los case se cumpla.
1 2 3 4 5 6 7 8 |
case "otros": echo "Has seleccionado otros"; break; default: echo "Categoría irreconocible"; break; } ?> |
Sintáxis alternativa
Una declaración swtich puede remplazar el primer corchete por 2 puntos y el corchete final por el comando endswitch. Sin embargo, esta sintáxis no es muy usada.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $categoría = "otros"; switch ($categoría): case 1: echo "Has seleccionado refrescos"; break; //etc //etc default: echo "Categoría irreconocible"; break; endswitch ?> |
Y aquí finaliza el post de hoy, espero que os haya gustado. A seguir picando 🙂