Estruturas de controle no PHP: if, else, elseif e switch
Atualizado emNa maioria da vezes precisamos desviar o fluxo de nosso código PHP dependendo do resultado que esperamos ter em dado momento, e para isso existem diferentes estrutura de controle que todas elas serão abordadas aqui.
Declarando uma condição if
Executa todo o bloco de código linha a linha somente se esta condição for verdadeira, exemplo:
1 2 3 4 5 6 7 8 9 10 | <!--?php $num1 = 2; $num2 = 1; if ($num1 --> $num2) { echo 'Está condição é verdadeira <br>'; echo 'e o número ' .$num1. ' é maior que 1'; } ?> |
Declarando uma condição if…else
Executa todo o bloco de código linha a linha somente se a primeira condição if for verdadeira caso contrário executa imediatamente o bloco else exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $num1 = 2; $num2 = 2; if ($num1 > $num2) { echo 'Está condição é verdadeira <br>'; echo 'e o número ' .$num1. ' é maior que 1'; }else{ echo $num1 . ' não é maior que ' .$num2. ' elas são iguais portanto isso serve de alerta!'; } ?> |
Operardor Ternário
Existe uma alternativa ao uso do if…else… que é o uso do operador ternário, muitos criticam o seu uso alegando que é um código ilegível outros assim como eu recomendo o seu uso contrariando tudo o que os críticos alegam, mas discussão a parte e vejamos seu uso.
<?php (expr1) ? (expr2) : (expr3) ?> |
Com base na expressão do exemplo anterior aplicando o uso desse operador temos:
1 2 3 4 5 6 7 | <?php $num1 = 2; $num2 = 2; echo ($num1 > $num2) ? 'Está condição é verdadeira <br> e o número ' .$num1. ' é maior que 1' : $num1 . ' não é maior que ' .$num2. ' elas são iguais portanto isso serve de alerta!'; ?> |
Verificando múltiplas condições com o uso de if…elseif…else…
Quando desejamos fazer uso de múltiplas condições podemos recorrer a este tipo de estrutura que verifica condição por condição até que encontre uma condição verdadeira.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php $num1 = 2; $num2 = 3; if ($num1 > $num2) { echo 'Está condição é verdadeira <br>'; echo 'e o número ' .$num1. ' é maior que ' .$num2; }elseif($num1 == $num2){ echo 'o número ' .$num1. ' é igual a ' .$num2; }elseif($num1 < $num2){ echo 'o número ' .$num1. ' é menor ' .$num2; }else{ echo 'todas as condições anteriores são falsas por isso está vendo essa mensagem'; } ?> |
Verificando múltiplas condições com o uso de switch
Esta condição é uma alternativa para a condição anterior onde avaliará condição por condição até que seja encontrada uma condição que seja verdadeira e deixara de avaliar as condições seguintes por causa do comando break.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php $num1 = 2; switch ($num1) { case 1: echo 'Está condição é verdadeira </ br>'; echo 'e o número ' .$num1. ' é igual a 1'; break; case 2: echo 'o número ' .$num1. ' é igual a 2'; break; case 3: echo 'o número ' .$num1. ' é igual a 3'; break; default: echo 'todas as condições anteriores são falsas por isso está vendo essa mensagem'; } ?> |
Faça outros testes mudando os valores das variável para vê como o programa se comporta, por exemplo posso omitir o comando break da linha 15, alterar o valor para 2 da linha 13 para que o interpretador continue avaliando as condições seguintes.
Seja o primeiro a comentar