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!!!