Operador PHP OU

Resumo : neste tutorial, você aprenderá sobre o operador OR (||) do PHP e como usá-lo para construir expressões lógicas complexas.

Introdução ao operador PHP OR

O operador lógico ORaceita dois operandos e retorna truese um dos operandos for verdadeiro; caso contrário, ele retorna false. Em outras palavras, o operador lógico OR retorna falsese ambos os operandos forem false.

Para representar o operador lógico OR, o PHP usa a orpalavra-chave ou o ||seguinte:

expression1 or expression2

Ou

expression1 || expression2

A tabela a seguir ilustra o resultado do oroperador:

expressão1 expressão2 expressão1 || expressão2
true true true
true false true
false true true
false false false

Observe que or, Ore ORsão iguais porque as palavras-chave PHP não diferenciam maiúsculas de minúsculas.

Os operadores ||e orretornam o mesmo resultado. A única diferença entre os operadores ||e orsão suas precedências. O oroperador tem precedência mais alta que o ||operador.

Exemplos de operadores PHP OR

Suponha que você precise limpar o cache do site se o sinalizador $expriredou $purgeestiver definido como true. Para fazer isso, você pode usar o operador lógico OR da seguinte maneira:

<?php

$expired = true;
$purged = false;

$clear_cache = $expired || $purged;

var_dump($clear_cache);Linguagem de código:  HTML, XML  ( xml )

Saída:

bool(true)Linguagem de código:  JavaScript  ( javascript )

Como $expiredis true, o resultado do operador OR também é true.

Porém, se você alterar $expiredpara false, o resultado será falseconforme mostrado no exemplo a seguir:

<?php

$expired = false;
$purged = false;

$clear_cache = $expired || $purged;

var_dump($clear_cache);Linguagem de código:  HTML, XML  ( xml )

Na prática, você costuma usar o operador lógico OR nas instruções if , if-else , if-elseif , while e do-while .

Curto-circuito

Quando o primeiro operando é true, o operador lógico OR sabe que o resultado também deve ser true. Neste caso, não avalia o segundo operando. Este processo é chamado de curto-circuito.

Na prática, muitas vezes você descobre que o operador or é usado no seguinte padrão:

function_call() || die(message)Linguagem de código:  PHP  ( php )

Se function_call()retornar true, foi bem-sucedido. O PHP nunca executará o segundo operando que é uma chamada para a die()função. Caso contrário, o PHP chamará a die()função com uma mensagem de erro.

Por exemplo:

<?php

function connect_to_db()
{
	return false;
}

connect_to_db() || die('Cannot connect to the database.');
Linguagem de código:  HTML, XML  ( xml )

Saída:

Cannot connect to the database

Neste exemplo, a connect_to_db()função retorna false, o PHP chama a die()função que mostra a mensagem de erro.

As pegadinhas do PHP OU

Veja o exemplo a seguir:

<?php

$result = false or true;

var_dump($result);
Linguagem de código:  HTML, XML  ( xml )

Saída:

bool(false)Linguagem de código:  JavaScript  ( javascript )

Neste exemplo, você esperaria que o resultado $ fosse verdadeiro porque a expressão falsa ou verdadeira retorna verdadeiro. No entanto, não é o caso.

Ao avaliar a seguinte afirmação:

$result = false or true;Linguagem de código:  PHP  ( php )

O PHP avalia o $result = falseprimeiro e depois o orsegundo operador porque o =operador tem precedência maior que o oroperador.

Observe que cada operador tem precedência. E o PHP avaliará os operadores com maior precedência antes daqueles com menor precedência.

Tecnicamente, é equivalente ao seguinte:

($result = false) or true;Linguagem de código:  PHP  ( php )

Portanto, $resulté atribuído o falsevalor.

Para corrigir isso, você precisa usar parênteses para alterar a ordem de avaliação:

<?php

$result = (false or true);

var_dump($result);Linguagem de código:  HTML, XML  ( xml )

Saída:

bool(true)Linguagem de código:  JavaScript  ( javascript )

Ou você pode usar o || operador:

<?php

$result = false || true;
var_dump($result);
Linguagem de código:  HTML, XML  ( xml )

Saída:

bool(true)Linguagem de código:  JavaScript  ( javascript )

Portanto, é uma boa prática sempre usar o ||operador em vez do oroperador.

Resumo

  • Use o operador PHP OR ( or, ||) para combinar duas expressões e retornar truese alguma das expressões for true; caso contrário, ele retorna false.
  • O operador lógico OR está em curto-circuito.
  • Use o ||operador em vez do oroperador.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *