Neste artigo, você aprenderá como usar a instrução switch-case em PHP para testar ou avaliar expressões com valores diferentes.
PHP If e Else com Switch-Case
A instrução switch-case é uma alternativa à instrução if-elseif-else e faz quase a mesma coisa. A instrução switch-case testa uma variável em um intervalo de valores até encontrar uma correspondência e, em seguida, executa o bloco de código correspondente.
O switch
case é um comando de controle de fluxo usado para realizar diferentes ações com base em diferentes condições. Frequentemente, usamos a instrução switch-case quando há múltiplas opções possíveis e queremos realizar uma ação diferente para cada uma delas.
A sintaxe básica do switch
case no PHP é a seguinte:
switch (expressão) {
case valor1:
// código a ser executado quando a expressão for igual a valor1
break;
case valor2:
// código a ser executado quando a expressão for igual a valor2
break;
...
default:
// código a ser executado quando nenhum dos valores anteriores for igual à expressão
break;
}
A expressão é avaliada uma vez e, em seguida, cada case
é comparado com ela até que um case
seja encontrado com um valor igual à expressão. Quando isso acontece, o código dentro do case
é executado. Se nenhum case
tiver um valor igual à expressão, o código no default
será executado.
O break
é usado para sair do switch
depois que o código correspondente ao case
foi executado. Se você não colocar um break
, o código continuará a ser executado até que o final do switch
seja alcançado. Isso pode ser útil se você desejar que múltiplos case
s compartilhem o mesmo código.
Aqui está um exemplo de como o switch
case pode ser usado no PHP:
<?php
$hoje = date("D");
switch($hoje){
case "Seg":
echo "Hoje é segunda-feira. Limpe sua casa.";
break;
case "Ter":
echo "Hoje é terça-feira. Compre um pouco de comida.";
break;
case "Qua":
echo "Hoje é quarta-feira. Visite um médico.";
break;
case "Qui":
echo "Hoje é quinta-feira. Conserte seu carro.";
break;
case "Sex":
echo "Hoje é sexta-feira. Festa hoje à noite.";
break;
case "Sab":
echo "Hoje é sábado. É hora do cinema.";
break;
case "Dom":
echo "Hoje é domingo. Descanse um pouco.";
break;
default:
echo "Dia da semana inválido.";
break;
}
?>
Leia também: PHP: guia sobre if e else
Uma instrução switch-case difere de uma instrução if-elseif-else em um aspecto importante. O PHP executa a instrução switch linha por linha. Quando o PHP encontra uma instrução case avaliada como true, ele executa o código correspondente e todas as instruções do bloco de comutação subsequentes automaticamente.
Para evitar isso, adicione uma instrução break no final de cada bloco case. A instrução break diz ao PHP para sair do bloco de instrução switch-case uma vez que o código associado ao primeiro caso verdadeiro tenha sido executado.