switch
A
instrução
switch
é
similar
a
uma
série
de
instruções
IFs
seguidas
.
Em
muitas
ocasiões
,
você
poderá
ter
que
comparar
a
mesma
variável
(
ou
expressão
)
com
muitos
valores
diferentes
,
executando
códigos
diferentes
dependendo
com
qual
valor
ele
se
encaixar
.
É
exatamente
para
isso
que
a
instrução
switch
faz
.
Os
exemplos
seguintes
mostram
duas
maneiras
diferentes
de
escrever
a
mesma
coisa
,
uma
utilizando
uma
série
de
is
s
e
a
outra
utlizando
a
instrução
switch
:
É
importante
entender
como
a
instrução
switch
funciona
para
evitar
enganos
.
A
instrução
switch
executa
linha
a
linha
(
atualmente
,
instrução
a
instrução
)
.
No
início
,
nenhum
código
é
executado
.
Somente
quando
uma
instrução
case
é
encontrada
com
um
valor
que
combina
com
a
expressão
do
switch
faz
com
que
o
PHP
execute
as
instruções
a
partir
daí
.
O
PHP
continua
executando
as
instruções
até
o
fim
do
bloco
switch
ou
na
primeira
vez
que
encontrar
uma
instrução
break
.
Se
você
não
escrever
uma
instrução
break
no
fim
das
instruções
case
,
o
PHP
continuará
executando
os
case
s
seguintes
.
Exemplo
:
Aqui
,
se
$i
é
igual
a
zero
,
o
PHP
executará
todas
as
instruções
print!
.
Se
$i
é
igual
a
1
,
o
PHP
executará
os
últimas
duas
instruções
print
,
e
somente
se
$i
for
igual
a
2
,
você
terá
o
comportamento
'
esperado
'
apenas
onde
'i
igual
a
2
'
será
mostrado
.
Então
é
importante
não
se
esquecer
das
instruções
break
(
e
as
vezes
não
colocá-las
para
obter
esse
resultado
em
certas
circunstâncias
)
.
Em
uma
instrução
switch
,
a
condição
somente
será
avaliada
e
resultado
comparado
para
cada
instrução
case
.
Em
uma
instrução
elseif
,
a
condição
é
avaliada
novamente
.
Se
sua
condição
é
mais
complicada
que
um
simples
comparação
e
/
ou
e
dentro
de
um
loop
,
um
switch
é
mais
rápido
.
Um
case
pode
não
ter
nenhuma
instrução
dentro
,
o
que
simplesmente
passa
o
controle
para
o
próximo
case
.
Um
case
especial
é
o
default
.
Esse
case
é
executado
quando
nenhum
outro
case
combina
.
Ele
precisa
ser
a
última
instrução
case
.
Por
exemplo
:
A
expressão
avaliada
pelo
case
A
expressão
avaliada
pelo
case
precisa
ser
um
tipo
simples
,
ou
seja
,
inteiros
,
números
de
ponto
flutuante
e
strings
.
Arrays
ou
objetos
não
podem
ser
utilizados
a
não
ser
que
eles
impliquem
num
tipo
simples
.
A
sintaxe
alternativa
para
estruturas
de
controle
é
suportada
para
os
switches
.
Para
maiores
informações
,
veja
Sintaxe
alternativa
para
estruturas
de
controle
.