DEV Community

Cover image for PHP: Operador lógico xor
Tadeu Barbosa
Tadeu Barbosa

Posted on

PHP: Operador lógico xor

Recentemente esbarrei em uma palavrinha em um código por aí. Na hora não entendi bem o que era... Era o operador xor.

Estava estudando e vi a explicação desse operador que, pelo menos pra mim, não é muito comum.

O que vi era mais ou menos assim:

if ($isValue1 xor $isValue2) {
  // code
}
Enter fullscreen mode Exit fullscreen mode

O operador xor é utilizado para quando você precisa que somente um dos valores seja positivo. Vejamos primeiramente o and e o or...

$value = 1;

// retorna true, pois o value é igual a 1 e menor que 2
if ($value === 1 and $value < 2) {
  // code
}


// retorna true, o value não é igual a 2, mas é menor que 2
// ele entra na segunda expressão
if ($value === 2 or $value < 2) {
}

// lembrando que também poderia ser usado o && e ||, daria no mesmo

if ($value === 1 && $value < 2) {
  // code
}

if ($value === 2 || $value < 2) {
  // code
}
Enter fullscreen mode Exit fullscreen mode

O xor, no entanto, aceita somente uma das verificações:

$value = 1;

// retorna false, pois as duas expressões são verdadeiras
// value é igual a 1 e value é menor que 2
if ($value === 1 xor $value < 2) {
  // code
}

// retorna true, pois a primeira expressão é negativa
// e a segunda positiva
if ($value === 2 xor $value < 2) {
  // code
}

// assim como o or e o and, 
// você também pode utilizar o acento círcunflexo (^)

if ($value === 1 ^ $value < 2) {
  // code
}

if ($value === 2 ^ $value < 2) {
  // code
}
Enter fullscreen mode Exit fullscreen mode

Fiz uma tabelinha pra explicar melhor:

image


Bem, espero que isso possa te ajudar de alguma maneira. Tem coisa que parece besteira quando a gente aprende, mas que pode ajudar de mais no dia a dia :)

Top comments (0)