Quando o valor de uma única variável especifica o número de diferentes opções é muito mais simples usar a instrução switch.
Se você deseja selecionar um dentre muitos blocos de código a serem executados, use Switch. Switch é usada para evitar longos blocos de código como acontece às vezes quando usamos if..elseif..else.
Sintaxe:
switch (expressao){
case valor1:
código a ser executado se expressao = valor1;
break;
case valor2:
código a ser executado se expressao = valor2;
break;
default:
código a ser executado se expressao é doferente de valor1 e valor2;
}
Veja um Exemplo real:
<?php
$d = date("D");
switch ($d){
case "Mon":
echo "hoje é segunda";
break;
case "Tue":
echo "hoje é terça";
break;
case "Wed":
echo "hoje é quarta";
break;
case "Thu":
echo "hoje é quinta";
break;
case "Fri":
echo "hoje é sexta";
break;
case "Sat":
echo "hoje é sábado";
break;
case "Sun":
echo "hoje é domingo";
break;
default:
echo "Dia inválido!";
}
?>
Vejamos outro exemplo real de uso do switch:
<?php
$funcao = 'admin';
$mensagem = '';
switch ($funcao) {
case 'admin':
$mensagem = 'Bem-vindo! admin!';
break;
case 'editor':
$mensagem = 'Bem-vindo! você tem artigos pendentes';
break;
case 'autor':
$mensagem = 'Bem-vindo! quer editar um rascunho?';
break;
case 'subscriber':
$mensagem = 'Bem-vindo! Há novos artigos.';
break;
default:
$mensagem = 'você não é autorizado a acessar essa página';
}
echo $mensagem;
?>
Combinando cases
podemos combinar vários cases em um.
<?php
$mensagem = '';
$funcao = 'autor';
switch ($funcao) {
case 'admin':
$mensagem = 'Bem-vindo! admin!';
break;
case 'editor':
case 'autor':
$mensagem = 'Bem-vindo! você tem artigos pendentes';
break;
case 'assinante':
$mensagem = 'Bem-vindo! Há novos artigos.';
break;
default:
$mensagem = 'você não é autorizado a acessar essa página';
}
echo $mensagem;
Sintaxe alternativa
PHP também suporta a seguinte sintaxe alternativa para switch:
<?php
switch (expressao):
case valor1:
// bloco de código 1
break;
case valor2:
// bloco de código 2
break;
default:
// se nenhum dos valores forem verdadeiros então execute default
break;
endswitch;
Conclusão
O switch em PHP é uma estrutura de controle que permite executar diferentes blocos de código com base no valor de uma expressão. É uma alternativa ao uso de várias declarações if-else.