Sintaxis condicional de PHP usando instrucciones de cambio y caso

La sentencia switch / case ofrece una funcionalidad similar a la sentencia if / elseif; sin embargo, ofrece una solución más elegante y tiene capacidades más allá de la alternativa if / elseif.


Una declaración de cambio / caso permite múltiples comparaciones de una variable. Por ejemplo, considere la siguiente declaración if:

si ($ var == 1) {
echo "uno";
} elseif ($ var == 1) {
echo "dos";
} else {
echo "Otro";
}

Esto es idéntico a la declaración de cambio / caso que sigue:

interruptor ($ var) {
caso 1:
echo "uno";
descanso;
caso 2:
echo "dos";
descanso;
defecto:
echo "Otro";
}

En este ejemplo, si $ var es igual a 1, la primera declaración del caso será verdadera; y se ejecutará el código asociado (echo "One";). La salida resultante sería la siguiente:

Uno

Si $ var no coincide con 1 o 2, entonces el código en el bloque predeterminado se ejecutará como el último bloque else en una sentencia if / elseif / else.

Las declaraciones de cambio / caso difieren de las declaraciones if / elseif principalmente debido a la instrucción break. Sin las declaraciones de ruptura en el ejemplo anterior, un valor de 1 para $ var coincidiría con el primer bloque de caso. Además, cada código de bloqueo de caso subsiguiente se ejecutaría hasta que se encuentre una declaración de ruptura, ya sea que $ var coincida con las declaraciones de caso subsiguientes. La salida resultante sería la siguiente:

Uno
Dos
Otro