Gostou do nosso conteúdo? Te ajudou?
Nos ajude também! Faça um PIX, de qualquer valor:
programacao.progressiva@gmail.com

IF e ELSE dentro de IF e ELSE - Estruturas Aninhadas

Agora que aprendemos como usar o IF e ELSE em PHP, vamos aprender como aninhar essas estruturas de controle, ou seja, colocar IF e ELSE dentro de IF e ELSE.

IF e ELSE Aninhados

Em muitos sistemas web que você for trabalhar, vai ser necessário usar uma técnica chamada aninhamento, que nada mais é que colocar uma coisa dentro de outra.

Vamos refazer um script que fizemos, o do voto.
Crie um sistema Web que pergunte a idade do usuário. Se ele tiver menos de 16 anos, não pode votar.
Se tiver entre 16 e 18  é facultativo. Se tiver entre 18 ou mais, deve votar.

Note que nosso exemplo ficou mais complexo, pois agora vamos tratar 3 casos:
  1. Quem tem menos de 16 anos
  2. Quem tem mais de 16 e menos de 18
  3. Quem tem 18 anos ou mais

Vamos começar com o primeiro IF, já eliminando quem tem menos de 16 anos:
if($idade < 16){
   ...
} else {
  ...
}

Tudo que for pro ELSE, é porque tem 16 anos ou mais. Dentro desse grupo, precisamos achar os que tem menos de 18 anos, para isso, criamos outro IF dentro desse ELSE, tratando os que tem menos de 18:
if($idade < 18)
  ...
else
  ...
Esse IF interno vai ter também seu ELSE interno, e o que cai nele é tudo que tiver 18 anos ou mais, concorda?

Nosso código fica, então:

<html>
 <head>
  <title>Curso PHP Progressivo</title>
 </head>
 <body>
  <form action="home.php" method="get">
   Sua idade:  <input type="number" name="age" /><br />
   <input type="submit" name="submit" value="Testar" />
 </form> 
 <?php 
  $idade = $_GET['age'];
  
  if($idade < 16){
   echo "Você ainda não pode votar.";
  }
  else{
   if($idade < 18)
    echo "Seu voto é facultativo";
   else
    echo "Você pode votar";
  }
 ?>
 </body>
</html>

Curso de PHP online grátis

Exemplo de IF e ELSE aninhados

Crie um sistema Web que pergunte a idade do usuário. Se ele tiver menos de 16 anos, não pode votar.
Se tiver entre 16 e 18  é facultativo. Se tiver entre 18 e 65 é obrigatório votar.
Se tiver mais de 65, também é facultativo.

Este é um exemplo de sistema real, pessoal. Já estamos programando coisas úteis, que estão usando de verdade por aí.

Vamos lá. Primeiro, vamos tratar o caso dos menores de 16 anos.
Se tiver menos, avisando que não pode votar.

Se tiver 16 ou mais, vai pro primeiro ELSE.
Agora vamos testar com um novo IF se ela tem menos de 18.
Se tiver, está entre 16 e 18 anos, e só vota se quiser.

Agora tem o ELSE desse IF aninhado, se cair nele, é porque a pessoa tem 18 anos ou mais.
Dentro desse ELSE vamos colocar um novo IF.

Nesse novo IF vamos perguntar se a pessoa tem menos de 65, se esse novo teste for TRUE, a pessoa tem de 18 até 65, e é obrigada a votar.
O ELSE desse IF é caso ela tenha 65 ou mais, aí ela não é obrigada a votar também.

Veja como ficou nosso código:
<html>
 <head>
  <title>Curso PHP Progressivo</title>
 </head>
 <body>
  <form action="home.php" method="get">
   Sua idade:  <input type="number" name="age" /><br />
   <input type="submit" name="submit" value="Testar" />
 </form> 
 <?php 
  $idade = $_GET['age'];
  
  if($idade < 16)
   echo "Você ainda não pode votar.";
  else
   if($idade < 18)
    echo "Seu voto é facultativo";
   else
    if($idade<65)
     echo "Seu voto é obrigatório";
    else
     echo "Seu voto é facultativo";
  
 ?>
 </body>
</html>
Note que não usamos chaves nos nossos pares de IF e ELSE, e por um motivo que já explicamos: se abaixo dele tiver só uma instrução (um echo, um IF, um ELSE, um par IF e ELSE) não precisa de chaves.

Se não entendeu algo, pode perguntar.
Não tenha vergonha de perguntar ou ler de novo, de novo e de novo. No começo é complicado mesmo, programação PHP tem que ter paciência mesmo, é com calma e devagar que se aprende.