Curso de PHP: #7 - Operadores Lógicos

Curso de PHP: #7 - Operadores Lógicos

Fala escoteiro, empolgado com os estudos? No post anterior aprendemos bastante coisa sobre Operadores de Comparação e agora vamos estender um pouco mais o assunto e falar sobre Operadores Lógicos.

Com o conhecimento que você já adquiriu com certeza você conseguiria escrever um pequeno programa que verifica se a idade de uma pessoa é maior que a idade de outra pessoa. Certo? Mas, e se precisarmos ao mesmo tempo saber:

  • Se a idade de uma pessoa é maior que a idade de outra pessoa
  • Se o sexo de uma pessoa é igual a "feminino"
  • Se essa pessoa reside no Brasil

Como você faria?

É aqui que entram os operadores lógicos, também conhecidos como portas lógicas. E ai, vamos conhece-los?

AND

O operador lógico AND une duas expressões booleanas e retorna true se e somente se ambas forem verdadeiras.

No PHP o operador AND pode ser utilizado de duas formas, mas em nossos exemplos utilizaremos apenas a primeira delas.

  • Com os caracteres &&
  • Com a expressão and

Exemplo 1:

<?php

$idade = 25;
$sexo = "F";
$pais = "Brasil";

$aprovada = $idade > 18 && $sexo == "F" && $pais == "Brasil";

var_dump($aprovada);

OR

O operador lógico OR une duas expressões booleanas e retorna true se uma ou outra, ou até mesmo se as duas forem verdadeiras.

No PHP o operador OR pode ser utilizado de duas formas, mas em nossos exemplos utilizaremos apenas a primeira delas..

  • Com os caracteres ||
  • Com a expressão or

Exemplo 2:

<?php

$idade = 17;
$acompanhadoPorMaior = true;

$podeEntrar = $idade > 17 || $acompanhadoPorMaior == true;

var_dump($podeEntrar);

Perceba que a primeira parte não satisfez expressão lógica mas a segunda sim. Como usamos o operador OR, mesmo assim a resposta será Verdadeira.

Importante: Optei por não usar as duas formas de AND e OR para não criar confusão em sua cabeça devido a precedência de operadores.

NOT

O operador lógico NOT funciona como uma espécie de "espelho". Sempre que ele for utilizado em um valor Booleano, esse valor será trocado pelo valor oposto, ou seja, se você utiliza-lo em um valor true, esse valor será transformado em false, e vice-versa.

Exemplo:

<?php

$alunosNaSala = 10;
$salaVazia = !($alunosNaSala > 0);

var_dump($salaVazia);

No exemplo acima o PHP vai avaliar se a variável $alunosNaSala tem valor maior que 0, como nesse caso tem, ele vai avaliar como true, porém na sequência o operador NOT vai converter o valor para o oposto, ou seja: false.

Existem também o operador XOR, que é praticamente idêntico ao operador OR, porém ele retorna false se ambos os valores forem verdadeiros, por isso ele é chamado de OU EXCLUSIVO.

Desafio

Para você praticar, tente criar uma expressão com as seguinte condições:

Pode se alistar somente se: Idade é maior ou igual 18 e sexo é igual a "M" ou se tem autorização especial.

Até mais escoteiro!!!