Bora ajudar o programador a transformar café em código?

Comando IF - Teste Condicional em PHP

Neste tutorial de nosso curso de PHP, vamos te apresentar o comando IF, usado para teste condicional e controle de fluxo.

Teste Condicional em PHP: comando if

Até o momento, todos nossos scripts funcionam e rodam da mesma maneira, da primeira para última linha de comandos, sempre na mesma ordem, no mesmo fluxo.

Porém, no mundo real, não é assim que as coisas funcionam: algumas coisas são executadas, outras não, as vezes acontece isso e as vezes acontece aquilo, tudo dependendo de testes condicionais realizados.

Para alterar o controle de fluxo de um script, usamos o comando if em PHP, cuja sintaxe é:

<?php 
 if(expressão){
  codigo
  codigo
  codigo
 }
?>

Ou seja, começamos com o comando if, depois um par de parêntesis com alguma expressão dentro, que será testada (teste condicional).
Depois, um par de chaves: { }, com um código dentro.

Caso o teste condicional seja verdadeiro (TRUE), o código dentro do IF será executado.
Se for falso (FALSE), o código dentro do IF não será executado, o interpretador PHP pula todo esse bloco de código.

Exemplo de uso do IF

No código abaixo, pedimos a idade do usuário.

Depois, testamos se ela é maior que 17, se for, ele é maior de idade e exibimos a mensagem:
você já pode dirigir.

Se o valor fornecido pelo usuário for menor que 18, essa mensagem nunca será exibida:

<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 > 17){
   echo "Você já pode dirigir!";
  }
 ?>
 </body>
</html>

Você pode trocar: $idade > 17
Pelo teste: $idade >= 18
Note que é a mesma coisa, o importante é o teste ser TRUE, e para isso basta fornecer um número igual ou maior que 18.

Exemplo de uso do IF

O script a seguir, recebe a idade do usuário e se ela for menor que 65, avisa que não pode se aposentar ainda!

Veja:

<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 < 65){
   echo "Você nao pode se aposentar!";
  }
 ?>
 </body>
</html>

Se você digitar 65, o teste condicional já passa a ser FALSO e o IF não é executado.

Exemplo de uso de IF com string

Podemos fazer comparação com outros tipos de dados, não só números.
Por exemplo, o script a seguir pede uma senha ao usuário e só exibe a mensagem 'Entrando no sistema...' se ele acertar a senha:

<html>
 <head>
  <title>Curso PHP Progressivo</title>
 </head>
 <body>
  <form action="home.php" method="get">
   Senha:  <input type="text" name="senha" /><br />
   <input type="submit" name="submit" value="Testar" />
 </form> 
 <?php 
  $senha = $_GET['senha'];
  
  if($senha == 'php2112'){
   echo "Senha correta, entrando no sistema!";
  }
 ?>
 </body>
</html>

Analisando o código, você consegue descobrir qual a senha?
Sim, é 'php2112'. Tente escrever phP2112, entrou no sistema? Por que ?

Vamos fazer o contrário agora, exibir uma mensagem de erro quando o usuário errar a senha.
E quando ele erra? Sempre que diferente de 'php2112'...diferente te lembra algo?

Sim, pode usar o operador de comparação !=
Veja como fica o código:

<html>
 <head>
  <title>Curso PHP Progressivo</title>
 </head>
 <body>
  <form action="home.php" method="get">
   Senha:  <input type="text" name="senha" /><br />
   <input type="submit" name="submit" value="Testar" />
 </form> 
 <?php 
  $senha = $_GET['senha'];
  
  if($senha != 'php2112'){
   echo "Senha errada! Não vai conseguir hackear!";
  }
 ?>
 </body>
</html>

Agora substitua o operador != por <> e certifique-se que são iguais.

Seria bacana se tivesse uma mensagem para caso você acerte a senha e outra para caso você erre, não acha? É o que vamos fazer no próximo tutorial de nossa seção de testes condicionais em PHP.

Veja também

O melhor PC para programar

O melhor celular para programar