Operadores lógicos em PHP

Nenhum produto encontrado nessa seleção.

Operadores lógicos em PHP servem para comparar expressões que podem, ou não, retornar valores verdadeiros (true) ou falsos (false). Normalmente você precisa de duas expressões (ou mais) para ter uma comparação lógica.

Um exemplo disso seria uma comparação na vida real, veja a frase:

Se o Brasil ganhar e fizer sol hoje, vou nadar.

Neste caso temos duas comparações na frase acima, "Se o Brasil ganhar" e "Se fizer sol". Neste caso, uma comparação lógica com o operador "E" (&& ou and) indicaria ao PHP que, se as duas expressões retornarem um valor verdadeiro (o Brasil ganhou e faz sol), a ação indicada deverá ser executada.

Nota: Você sempre vai utilizar estruturas de controle para verificar expressões.

Veja o exemplo acima no código PHP:

<?php
if ( $brasil == 'ganhar' && $sol === true ) {
	echo 'Vou nadar.';
}
?>

Perceba acima que estou utilizando duas comparações (lembre-se dos operadores de comparação):

  • Se (if) $brasil é igual (==) a ganhar;
  • e (&&) – Este é um operador lógico;
  • Se (if) $sol é idêntico (===) a verdadeiro (true);

Ambas estão ligadas pelo operador lógico && (significa o mesmo que "e" em português), isso indica que as duas expressões devem retornar true (verdadeiro) para aparecer "Vou nadar" na tela do usuário.

Existem vários operadores lógicos em PHP, veja na tabela a seguir.

Tabela de operadores lógicos em PHP

Esta tabela está disponível no próprio site do PHP.

Operadores Lógicos
Exemplo Nome Resultado
$a and $b E (and) Verdadeiro (TRUE) se tanto $a quanto $b são verdadeiros.
$a or $b OU (or) Verdadeiro se $a ou $b são verdadeiros.
$a xor $b XOR (xor) Verdadeiro se $a ou $b são verdadeiros, mas não ambos.
! $a NÃO (!) Verdadeiro se $a não é verdadeiro.
$a && $b E (&&) Verdadeiro se tanto $a quanto $b são verdadeiros.
$a || $b OU (||) Verdadeiro se $a ou $b são verdadeiros.

Na tabela acima você pode ver que existem dois "E" e "OU", são eles:

  • E = and ou &&
  • Ou = or ou ||

Eles fazem a mesma coisa, porém, && e || têm maior precedência sobre and e or.

Você também pode perceber que existe um operador de negação – o exclamação – que funciona um pouco diferente dos outros operadores. Este operador não precisa de duas (ou mais expressões), você pode verificar uma expressão de negação com apenas uma expressão.

Por exemplo: Suponhamos que eu queira verificar se uma variável não existe.

<?php
if ( ! isset( $variavel ) ) {
	echo 'Variável não existe.';
}
?>

Perceba que no trecho acima, o exclamação (!) muda a expressão para "Não", ou seja, "Se a variável NÃO está setada, mostra isto na tela".

Nota: Para verificar se uma variável existe, você pode utilizar a função isset do PHP.

Exemplos de operadores lógicos em PHP

Veja abaixo alguns exemplos que podem lhe ajudar a entender melhor:

<?php
// Verifica se $a e (&&) $b são iguais a 1
if ( $a == 1 && $b == 1 ) {
	echo 'OK';
}

// Verifica se $a OU (||) $b são iguais a 1
if ( $a == 1 || $b == 1 ) {
	echo 'OK';
}
?>

Nos dois casos acima estamos avaliando a mesma expressão; $a e $b iguais a 1. No primeiro caso, as duas expressões devem retornar true (verdadeiro), ou seja, $a E $b devem ser iguais a 1 para executar a ação. No segundo, $a OU $b precisam ter o valor igual a 1, se qualquer um dos dois tiver este valor, a ação será executada.

Aulas anteriores

Caso queira acessar os links para aulas anteriores:

Veja todas as aulas, e mais, na categoria Curso de PHP do Tutsup.