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:
- [Aula 1] Instalando o servidor Web
- [Aula 2] Criando o primeiro script PHP
- [Aula 3] Entendendo e utilizando variáveis
- [Aula 4] Entendendo e utilizando constantes
- [Aula 5] Tipos de dados: Boolean, Integers, float e Strings
- [Aula 6] Tipos de dados Array
- [Aula 7] Tipos de Operadores
- [Aula 8] IF, ELSE e ELSEIF em PHP
- [Aula 9] For, Foreach, While e Do While em PHP
- [Aula 10] Cookies e sessões em PHP











Rafael disse:
Em 26/11/2011 às 13:57:11
Parabéns pelo site, o conteudo ta muito bem explicado!!!
Responder para Rafael | Denunciar