switch
La
sentencia
switch
es
similar
a
una
serie
de
sentencias
IF
en
la
misma
expresión
.
En
muchas
ocasiones
,
se
quiere
comparar
la
misma
variable
(
o
expresión
)
con
nuchos
valores
diferentes
,
y
ejecutar
una
parte
de
código
distinta
dependiendo
de
a
qué
valor
es
igual
.
Para
ello
sirve
la
sentencia
switch
.
Los
siguientes
dos
ejemplos
son
dos
modos
distintos
de
escribir
la
misma
cosa
,
uno
usa
una
serie
de
sentencias
if
,
y
el
otro
usa
la
sentencia
switch
:
Es
importante
entender
cómo
se
ejecuta
la
sentencia
switch
para
evitar
errores
.
La
sentencia
switch
ejecuta
línea
por
línea
(
realmente
,
sentencia
a
sentencia
)
.
Al
comienzo
,
no
se
ejecuta
código
.
Sólo
cuando
se
encuentra
una
sentencia
case
con
un
valor
que
coincide
con
el
valor
de
la
expresión
switch
PHP
comienza
a
ejecutar
las
sentencias
.
PHP
continúa
ejecutando
las
sentencias
hasta
el
final
del
bloque
switch
,
o
la
primera
vez
que
vea
una
sentencia
break
.
Si
no
se
escribe
una
sentencia
break
al
final
de
una
lista
de
sentencias
case
,
PHP
seguirá
ejecutando
las
sentencias
del
siguiente
case
.
Por
ejemplo
:
Aquí
,
si
$i
es
igual
a
0
,
¡PHP
ejecutaría
todas
las
sentecias
print
!
Si
$i
es
igual
a
1
,
PHP
ejecutaría
las
últimas
dos
sentencias
print
y
sólo
si
$i
es
igual
a
2
,
se
obtendría
la
conducta
'
esperada
'
y
solamente
se
mostraría
'i
es
igual
a
2
'
.
Así
,
es
importante
no
olvidar
las
sentencias
break
(
incluso
aunque
pueda
querer
evitar
escribirlas
intencionadamente
en
ciertas
circunstancias
)
.
En
una
sentencia
switch
,
la
condición
se
evalúa
sólo
una
vez
y
el
resultado
se
compara
a
cada
sentencia
case
.
En
una
sentencia
elseif
,
la
condición
se
evalúa
otra
vez
.
Si
tu
condición
es
más
complicada
que
una
comparación
simple
y
/
o
está
en
un
bucle
estrecho
,
un
switch
puede
ser
más
rápido
.
La
lista
de
sentencias
de
un
case
puede
también
estar
vacía
,
lo
cual
simplemente
pasa
el
control
a
la
lista
de
sentencias
del
siguiente
case
.
Un
case
especial
es
el
default
case
.
Este
case
coincide
con
todo
lo
que
no
coincidan
los
otros
case
.
Por
ejemplo
:
La
expresión
case
puede
ser
cualquier
expresión
que
se
evalúe
a
un
tipo
simple
,
es
decir
,
números
enteros
o
de
punto
flotante
y
cadenas
de
texto
.
No
se
pueden
usar
aquí
ni
arrays
ni
objetos
a
menos
que
se
conviertan
a
un
tipo
simple
.
La
sintaxis
alternativa
para
las
estructuras
de
control
está
también
soportada
con
switch
.
Para
más
información
,
ver
Sintaxis
alternativa
para
estructuras
de
control
.