
Compatibilidad PHP 4, PHP 5, PHP 7.
Una declaración switch en php es como una serie de declaraciones if else if aplicadas a la misma expresión. A la cual es posible que deba comparar la misma variable (o expresión) con diferentes valores (casos) e implementar un código diferente dependiendo de eso, y esa es la función principal de una declaración switch en php.
A diferencia de algunos lenguajes de programación, la instrucción continue se puede utilizar y switch en php funciona como una instrucción break
. Si está utilizando switch
dentro de un ciclo y desea pasar al siguiente ciclo en el ciclo exterior, utilice continue 2
.
Es importante resaltar que la declaración switch / case en php realiza una comparación no estricta, es decir, no compara el valor y el tipo juntos.
En los dos casos de los ejemplos siguientes proporcionarán dos formas totalmente diferentes de escribir el mismo código, uno usa una serie de if
y declaraciones elseif
, y la otra con una sentencia switch en php:
Sintaxis del switch en PHP
switch(expression){ case value1: //código a ejecutar break; case value2: //código a ejecutar break; ...... default: código que se ejecutará if no coinciden todos los casos; }
Cómo funciona el switch php
El funcionamiento es sencillo, pues primero realice un cálculo en una expresión simple n (generalmente una variable). Compare el valor de la expresión con el valor de cada caso en la estructura. Si hay una coincidencia, se ejecuta el código asociado con el caso.
Después de que se ejecute el código, use break para evitar que el código salte al siguiente caso para continuar con la ejecución. La declaración predeterminada se usa cuando no hay alguna coincidencia (es decir, ningún caso es verdadero).
Ejemplo del uso en la estructura switch
php
<?php if ($i == 0) { echo "i es igual a 0"; } elseif ($i == 1) { echo "i es igual a 1"; } elseif ($i == 2) { echo "i es igual a 2"; } switch ($i) { case 0: echo "i es igual a 0"; break; case 1: echo "i es igual a 1"; break; case 2: echo "i es igual 2"; break; } ?>
A continuación veremos el caso del segundo ejemplo y usaremos string en una estructura switch
.
<?php switch ($i) { case "apple": echo "i is apple"; break; case "bar": echo "i is bar"; break; case "cake": echo "i is cake"; break; } ?>
Para evitar cometer errores, es muy importante comprender cómo switch. El lenguaje implementa una declaración switch
línea por línea (en realidad, una frase por frase). Inicialmente, el lenguaje no ejecuta ningún código, y el código solo se ejecuta cuando se alcanza una declaración case
(caso) que da un valor idéntico al valor en una expresión switch
.
El código PHP continúa ejecutando declaraciones hasta que se alcanza el final de un bloque switch, o hasta que se alcanza la primera declaración break
, por lo que si no agrega una declaración break
al final de una declaración case
, el lenguaje seguirá ejecutando el código para la case
siguiente declaración. Veamos un ejemplo de esto:
<?php switch ($i) { case 0: echo "i es igual 0"; case 1: echo "i es igual 1"; case 2: echo "i es igual 2"; } ?>
Pero si el valor de la variable $i
aquí es 0, el lenguaje ejecutará echo
todas las declaraciones, pero si el valor es 1, el lenguaje ejecutará las echo
dos últimas declaraciones. Y para obtener el resultado esperado mostrando el enunciado ‘i es igual a 2’, el valor de la variable debe ser $i
igual al valor 2.
Para ello, es necesario no olvidar los enunciados break
que es posible que no necesite utilizar estos enunciados en veces. La condición en una declaración se procesa switch solo una vez en php y el resultado se compara con cada declaración case
. En una declaración elseif
, la condición se procesa nuevamente.
Entonces, si la condición que desea verificar es más compleja que una simple comparación, o si está utilizando un ciclo cerrado, podría ser una declaración switch más rápida en php. Puede ser una declaración case
vacía, en cuyo caso el lenguaje pasa a la case
siguiente declaración .
<?php switch ($i) { case 0: case 1: case 2: echo "i es menor que 3 pero no negativo"; break; case 3: echo "i is 3"; } ?>
Hay un tipo de caso especial que es predeterminado, y este caso coincide con todo lo que no coincide con los otros casos. Veamos un ejemplo claro de esto:
<?php switch ($i) { case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; default: echo "i no es igual a 0, 1 o 2"; } ?>
Se puede escribir una declaración switch en php utilizando la sintaxis alternativa de las estructuras de control. Para obtener más información, consulte la sintaxis alternativa de las estructuras de control.
<?php switch ($i): case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; default: echo "i is not equal to 0, 1 or 2"; endswitch; ?>
Puede usar un punto y coma en lugar de dos puntos después de una declaración case
como:
<?php switch($idioma) { case 'Español'; case 'Ingles'; case 'Frances'; echo 'Muy bien'; break; default; echo 'Por favor, realice otra selección...'; break; } ?>
Precauciones del switch en php
- No escriba el número de componente después del caso, seguido de dos puntos:
- No escriba el intervalo de juicio después del caso, como ($ foo> 20 o $ foo == 30)
- La variable en el conmutador es preferiblemente un número entero o una cadena, porque el juicio booleano es más adecuado para if … else …
- Si se elimina la ruptura en cada caso, los bloques de código en cada caso se ejecutarán a su vez
- No es necesario que la declaración de cambio se escriba por defecto, pero como un buen hábito, se recomienda mantener la declaración por defecto.
Registro de cambios del switch en PHP
Propiedad | Función |
---|---|
7.0.0 | Tener más de un caso predeterminado desencadena el error E_COMPILE_ERROR. |
- Ajustes y Configuraciones del Lenguaje PHP
- Sintaxis del Lenguaje PHP
- Tipos de Datos que encontramos en PHP
- Las Variables en PHP
- Constantes en PHP
- Operadores en PHP
- Expresiones en PHP
- Estructuras de Control en PHP
- Características del if en PHP
- Características de else en PHP
- Características del elseif en PHP
- Características del while en PHP
- Características del do-while en PHP
- Características del for en PHP
- Características del foreach en PHP
- Características del break en PHP
- Características del switch php
- Características de continue en PHP
- Declare php Características
- Arrays php Características
- Tipos de Funciones String en PHP
- Addcslashes() en PHP Características
- Función chunk_split() PHP Características
- Función addslashes() PHP Características
- Función convert_uuencode() PHP Características
- Función chr() en PHP Características
- Función echo PHP Características