Nenhum produto encontrado nessa seleção.
Assim como você viu na aula anterior sobre if, else e elseif, switch também é utilizado para desvios condicionais no seu código PHP. Com ele é possível executar ações baseadas em uma, ou várias condições.
A diferença entre if/elseif/else e switch/case/default, está no modo em que o código é escrito, portanto, é muito importante que você leia a aula anterior para melhor entendimento sobre condicionais e operadores. Além disso, se você não especificar uma condição para o case do switch, ele fará uma comparação solta (com ==).
Switch em PHP
Para testar condições com switch em PHP, você deve seguir o formato abaixo:
switch ($variavel) { case (condição): Ação break; }
Perceba que a cada condição, é necessário adicionar um novo caso (case) no seguinte formato:
case 'condição': ação
Neste caso a condição será verificada com o operador ==, ou seja:
$variavel == 'condição'
Se você precisar especificar uma condição diferente, pode fazer da seguinte maneira:
case (condição): ação
Exemplo:
case ( $variavel > 10 ): ação
É necessário especificar um caso (case) para cada condição:
switch ($variavel) { case (condição): Ação break; case ( outra condição): Outra Ação break; case ( outra condição): Outra Ação break; case ( outra condição): Outra Ação break; case ( outra condição): Outra Ação break; }
Os cases são o mesmo que vários elseifs (detalhado na aula anterior).
Se você precisar de uma ação padrão caso nenhuma condição passe, a palavra default pode ser utilizada (o mesmo que else):
<?php switch ($variavel) { case (condição): Ação; break; case (condição): Ação; break; case (condição): Ação; break; default: Ação Padrão; } ?>
A palavra break serve para que o interpretador do PHP pare de testar as outras condições caso alguma delas passe, se você não utilizá-la o interpretador do PHP vai continuar testando todas as condições, mesmo se o seu objetivo já tiver sido atingido.
Exemplos
Crie um novo arquivo na sua pasta de cursos (como indiquei na primeira aula) e faça testes para aprimorar seus conhecimentos.
Veja alguns exemplos:
<?php // Meu nome $nome = 'Luiz Otávio'; // Comparação solta com == switch ( $nome ) { case 'João': echo $nome; break; case 'Maria': echo $nome; break; case 'Alan': echo $nome; break; case 'Luiz Otávio': echo $nome; break; default: echo 'Não sei o nome'; } ?>
No exemplo acima, a comparação é feita com o operador ==, pois, não especifiquei outro operador. Se eu fosse fazer o mesmo com if e else, ficaria assim:
// Comparação com if e else if ( $nome == 'João' || $nome == 'Maria' || $nome == 'Alan' || $nome == 'Luiz Otávio' ) { echo $nome; } else { echo 'Não sei o nome'; }
Por mais que eu tenha menos código, utilizar if e else faz com que ele fique desorganizado e difícil para ser lido neste caso.
Veja outro exemplo de utilização do switch:
<?php $numero = 50; switch ( $numero ) { case ( $numero > 100 ): echo 'Valor muito alto'; break; case ( $numero < 80 && $numero > 51 ): echo 'Valor médio'; break; case ( $numero === 50 ): echo 'Valor perfeito'; break; case ( $numero <= 10 ): echo 'Valor muito baixo'; break; case ( $numero == 0 ): echo 'Sem valor'; break; } ?>
Perceba que agora estou especificando os operadores que desejo utilizar nas condições, ou seja, ao invés de comparar valores com ==, posso colocar quantas condições eu quiser, e quantos operadores forem necessários.
Aulas anteriores
Veja todas as aulas, e mais, na categoria Curso de PHP do Tutsup.