IF, ELSE e ELSEIF em PHP [Aula 8]

Postado por Luiz Otávio em 19/11/2011 às 17:11:45 na categoria Webmaster

Achou que a gente tinha deixado de lado as nossas aulas de PHP, não é? Pois é, elas estão de volta e hoje vamos falar das estruturas condicionais IF, ELSE e ELSEIF.

É praticamente impossível criar um script PHP complexo sem utilizar as condições, aliás, para tudo na vida da gente existe uma condição, por exemplo:

  • Se um motorista não abastecer seu carro, ele não vai andar
  • Se a energia da sua casa cair seu computador vai desligar, mas se você tiver um nobreak ele permanece ligado por algum tempo
  • Se a sua Internet cair e você fechar o navegador, não será possível ler este tutorial

Estas são condições óbvias que acontecem diariamente e automaticamente na nossa vida, em nossos scripts PHP também teremos milhares de condições a todo momento, tais como verificar se uma variável está "setada", verificar a permissão de um usuário em determinada parte do código, verificar a extensão de um arquivo e assim por diante.

Veja detalhes sobre a estrutura de cada uma das condições abaixo;

IF (Se)

IF significa "Se" (em português) e se comporta exatamente como seu significado, ele da condições para determinada linha do código.

A estrutura do IF no PHP é:

 
 
 if($condicao)
 {
     //faça alguma coisa
 } 

 

Dica: No exemplo acima utilizamos uma variável $condicao e você já leu sobre variáveis.

Utilizamos a palavra "if" (sem aspas), a condição entre parênteses (), e por fim o que será executado se a condição passar dentro de chaves {}.

Por exemplo: Se eu tenho uma variável $a com o valor 1 e outra variável $b com valor 2.

 
 
 $a = 1;
 $b = 2; 

 

Eu poderia fazer duas condições para saber se o valor das duas são iguais ou diferentes:

 
 
 $a = 1;
 $b = 2;
 
 if($a == $b)
 {
     echo $a . " é igual a " . $b;
 }
 
 if($a != $b)
 {
     echo $a . " NÃO é igual a " . $b;
 }
  

 

No código acima eu utilizo o IF com dois operadores de comparação, o == (os dois valores devem ser iguais) e o != (os dois valores devem ser diferentes) para saber se os valores de $a e $b são iguais ou diferentes. Como sabemos os valores de $a (1) e $b (2), também podemos presumir que o que será mostrado na tela do navegador do usuário será:

 
 
 1 NÃO é igual a 2 

 

Você também pode verificar se uma variável está "setada" com a função "isset" do PHP, veja um exemplo:

 
 
 if(isset($a))
 {
     echo $a;
 }
  

 

A condição acima seria o mesmo que dizer: "Se $a está na memória do servidor, mostre seu valor na tela";

Ou você ainda pode verificar se o valor de $a está vazio (0 ou nada) com a função "empty", veja abaixo:

 
 
 if(!empty($a))
 {
     echo $a;
 }
  

 

A condição acima é o mesmo que: "Se $a NÃO está vazio, NÃO é falso ou NÃO é 0, mostra o valor na tela";

Dica: Lembre-se que nós já falamos sobre o operador ! (exclamação), que significa "Não";

Você também pode verificar se o valor de $a mais o valor de $b é igual a um terceiro valor setado manualmente ou por qualquer outra variável ou array, veja abaixo:

 
 
 $a = 1;
 $b = 2;
 
 if($a + $b == 3)
 {
     echo 'O valor de $a + $b é igual a 3';
 }
  

 

O que iria mostrar "O valor de $a + $b é igual a 3" na tela do navegador do usuário.

Dica: Lembre-se que aspas simples não exibem o valor da variável apenas as aspas duplas, ou seja, '$a' imprime $a, já "$a" imprime o valor da variável 1;

Você também pode utilizar o IF dentro de vários IFs, o que se tornaria uma condição dentro de outra condição, veja um exemplo:

 
 
 $a = 1;
 $b = 2;
 
 if(isset($a) && isset($b))
 {
     if($a == 1)
     {
         if($b == 2)
         {
             echo '$a e $b estão setadas, $a = 1 e $b = 2';
         }
     }
 }
  

 

Temos 3 condições, se $a e (&&) $b estão setadas, se $a é igual a 1, se $b é igual a 2, mostre $a e $b estão setadas, $a = 1 e $b = 2 para o usuário.

Dica: Utilize o recuo (tab) para fazer a indentação do seu código, caso contrário você irá se perder com facilidade.

ELSEIF (mas se)

O elseif não tem tradução literal para o português e nem tem um significado em inglês, mas eu decidi chamá-lo de "mas se" e você já vai entender o motivo.

Elseif depende o if para existir, ou seja, você não pode fazer um script começando com elseif, exemplo:

 
 
 elseif($condicao)
 {
     //faça alguma coisa
 } 

 

A correção para isso é:

 
 
 if($condicao)
 {
     //faça alguma coisa
 }
 elseif($outra_condicao)
 {
     //faça outra coisa
 }
  

 

No código acima você pode perceber que estamos dizendo "Se existir uma condição faça alguma coisa, MAS SE (elseif) existir outra condição faça outra coisa".

Por exemplo: Eu tenho uma variável $a com valor 1 e outra variável $b com valor 2, com isso posso perguntar se $a é igual a 2 "mas se" não for, verifica se $b é igual a dois.

 
 
 $a = 1;
 $b = 2;
 
 if($a == 2)
 {
     echo $a;
 }
 elseif($b == 2)
 {
     echo $b;
 }
  

 

No trecho acima o script vai verificar se $a é a 2, como não é, ele pula para a próxima condição e verifica se $b é igual a 2, se for ele faz o comando que está dentro das chaves, no caso "echo $b";

Eu posso utilizar quantos elseifs desejar, com várias condições diferentes, veja o exemplo:

 
 
 $a = 1;
 $b = 2;
 
 if($a == 2)
 {
     echo $a;
 }
 elseif($b == 1)
 {
     echo $b;
 }
 elseif($b == 2)
 {
     echo $b;
 }
 elseif($b == 3)
 {
     echo $b;
 }
  

 

No código acima o script vai verificar se $a é igual a 2 e não vai será, então ele vai verificar se $b é igual a 1, como não é, ele vai verificar se $b é igual a 2, agora ele encontrou o valor correto, então ele vai parar ali na terceira condição e não vai verificar a quarta, onde $b teria que ser igual a 3.

Agora você pode entender o elseif, seria o mesmo que o texto abaixo na vida real.

A mãe diz para joãozinho: "Se (if) você fizer o dever de casa vai brincar hoje, mas se (elseif) fizer errado ficar de castigo".

Else (Senão)

Else é o mesmo que senão, ele não tem condições e também depende do IF. O else irá utilizar a condição contrária do IF para exibir seu valor.

No exemplo de joãozinho acima, poderíamos mudar a frase para : "Se (if) você fizer o dever de casa vai brincar, senão (else) vai ficar de castigo".

 
 
 if($joaozinho == "Fazer dever")
 {
     echo "Vai bricar!";
 }
 else
 {
     echo "Não vai bricar!";
 } 

 

Sabendo disso, você também pode deduzir que o else depende do IF para existir, você não pode começar um script com else sem que o if venha anteriormente.

Você também pode utilizar o if, elseif e else juntos no mesmo script, veja um exemplo:

 
 
 $a = 1;
 $b = 2;
 
 if($a == 2)
 {
     echo $a;
 }
 elseif($b == 1)
 {
     echo $b;
 }
 elseif($b == 3)
 {
     echo $b;
 }
 else
 {
     echo '$b não está entre os valores das condições';
 }
  

 

No trecho acima estamos verificando o valor de $a e $b, na primeira condição verificamos se $a é igual a 2, como não é ele verifica se $b é igual a 1, como não é ele passa para a próxima e checa se $b é igual a 3, como não é, ele vai para o else (senão), e mostra $b não está entre os valores das condições na tela do usuário.

IF e ELSE em uma linha

Existe uma outra forma de criar uma variável com condição em apenas uma linha, neste caso ela ficaria assim:

 
 
 $b = isset($_GET['b']) ? (int)$_GET['b'] : null;
  

 

Isto é o mesmo que:

 
 
 if(isset($_GET['b']))
 {
     $b = (int)$_GET['b'];
 }
 else
 {
     $b = null;
 }
  

 

A criação de variáveis com condição IF e ELSE em uma linha funciona da seguinte maneira:

$ Var. = Condição if True Else false ;
$ b = isset($_GET['b']) ? (int)$_GET['b'] : null ;
$ outra = 1 ? 1 : null ;

O resultado:

 
 
 $b = isset($_GET['b']) ? (int)$_GET['b'] : null;
 $outra = 1 ? 1 : null;
  

 

Aulas anteriores

Veja o que você já aprendeu aqui no TEO:

Mais sobre: IF ELSE ELSEIF PHP Aula

Mais sobre "Webmaster"

Ver tudo sobre "Webmaster"

Comentários

Rafael disse:

Em 26/11/2011 às 13:57:11

Parabéns pelo site, o conteudo ta muito bem explicado!!!

Responder para Rafael | Denunciar

Kaleo disse:

Em 02/12/2011 às 20:56:39

Muito bom, já havia mencionado isso antes... Porém é uma pena que esse tipo de postagem nao ocorra com mais frequencia, tenho certeza que muito aproveitam assim com eu...

Responder para Kaleo | Denunciar

Comentar

Nome *:
Email *:
Twitter (@nomedoseuusuario):
Quanto é *?
Comentário *:
Campos Obrigatórios *

Copyright © 2011 todoespacoonline.com ®. Todos os direitos reservados.