Curso de PHP – Operadores Lógicos, Bit a Bit e Relacionais

Operadores Lógicos, Bit a Bit e Relacionais em PHP

Nesta aula trataremos de três categorias de operadores muito importantes: Operadores Lógicos, Bit a Bit (bitwise) e Relacionais.

Os operadores Bitwise, também conhecidos como operadores bit a bit ou de manipulação de bits, são utilizados para realizar operações em números inteiros que representam valores booleanos (0 e 1), ou em strings caractere a caractere, e podem ser aplicados a qualquer tipo de dados.

Na tabela a seguir temos os operadores lógicos e seus significados.

Operador Significado
& ou AND E
| ou OR OU
~ NÃO
^ XOR (OU exclusivo)

Vejamos alguns exemplos de aplicação desses operadores. Vamos usar o operador AND (&) para calcular o resultado da operação bit a bit entre os números 172 e 248. Esse cálculo é empregado para determinar o endereço de uma rede, onde uma máscara de subrede é aplicada sobre os octetos de um endereço IP, um a um, com a operação E :

<?php
   $octeto = 172;
   $mascara = 248;
   $valor = $octeto & $mascara;
   echo “Aplicando a operação AND entre a máscara e o octeto obtemos o valor $valor”;
?>

Em uma aula futura vamos criar um programa que permite fazer diversos cálculos de rede usando o PHP, e para isso faremos uso extensivo desse tipo de operador.

Operadores de deslocamento de bits

Existem operadores que podem se utilizados para deslocar bits de um valor para esquerda ou para a direita, o que significa multiplicar número por dois ou dividir o número por dois, respectivamente, a cada deslocamento. Funcionam como multiplicadores e divisores de números.

Veja na tabela abaixo os operadores de deslocamento de bits disponíveis em PHP:

Operador Significado
>> Deslocamento para a direita (divide por dois)
<< Deslocamento para a esquerda (multilplica por 2)

Por exemplo, 5 << 2 = 20 (5 * 2 * 2), e 10 >> 1 = 5 (10 / 2).

Veja um exemplo do uso de operadores de deslocamento de bits no PHP:

<?php
   $num = 32;
   $valor1 = $num << 2; // equivale a 32 * 2 * 2 = 128
   $valor2 = $num >> 2; // equivale a 32 / 2 / 2 = 8
   echo "$valor1 <br/>";
   echo "$valor2";
?>

Operadores Relacionais

Os operadores relacionais (ou de comparação) permitem efetuar comparações entre valores contidos em variáveis ou constantes entre si, resultando sempre em um valor booleano (lógico, 0 ou 1, verdadeiro ou falso).

Valores diferentes de zero são considerados como valores verdadeiros e o valor zero é considerado como valor falso.

Na tabela a seguir temos os operadores relacionais usados em PHP:

Operador Significado
== Igual a
!= Diferente de
=== Idêntico a (valores iguais e do mesmo tipo)
!== Não idêntico a
> Maior do que
>= Maior ou igual a
< Menor do que
<= Menor ou igual a

Vejamos um exemplo do uso de operadores relacionais:

<?php
   $valor = 10;
   if ($valor == 15) {  // testa se $valor é igual a 15
      echo "Valor é 15";
   }
   elseif ($valor >= 10) { //verifica se $valor é maior ou igual a 10
       echo "Valor é maior ou igual a 10";
   }
   else {
      echo "Valor é menor que 10";
}
?>

Exemplo 02: Usando operador Idêntico a (===):

$valor = 10;
if ($valor === "10") { 
 echo "Valor é string";
}
else {
 echo "Valor não é string";
}
echo "<br><br>";
echo "Agora, fazendo cast no valor atribuído à variável:<br>";
$valor = (string)10;
if ($valor === "10") { 
 echo "Valor é string";
}
else {
 echo "Valor não é string";
}

Operadores Lógicos

Os operadores lógicos permitem realizar comparações entre expressões, retornando como resultado um valor verdadeiro (1) ou um valor falso (0). Quando usamos operadores relacionais podemos também combinar suas operações com operadores lógicos. Os operadores lógicos disponíveis em PHP estão listados na tabela abaixo:

Operador Significado
AND E
OR OU
XOR OU Exclusivo
&& E
|| OU
! Negação (NOT)

O resultado obtido depende do operador lógico utilizado, pois cada um funciona de uma forma distinta. As diversas combinações de entrada e resultados possíveis podem ser consultadas nas respectivas Tabelas-Verdade de cada operador – consulte os links abaixo para mais informações:

Vamos a alguns exemplos do uso de operadores lógicos:

<?php
   $a = 10;
   $b = 20;
   echo ($a == 10) && ($b == 20);
   echo "<br/>";
   if (($a == 10) && ($b == 20)) {
     echo "Ambos os valores estão corretos <br/>";
   }
   if (($a == 20) || ($b == 20)) {
     echo "Um dos valores está correto <br/>";
   }
   if (($a == 10) XOR ($b == 10)) {
     echo "Um dos valores está errado";
   }
?>

Os operadores AND e OR são avaliados ANTES dos operadores de atribuição; já os operadores && e || são avaliados DEPOIS na ordem de prioridade de operadores.

Ordem de precedência dos operadores relacionais

Na tabela a seguir podemos ver a ordem de precedência dos operadores relacionais nas expressões, da maior para a menor prioridade:

> >= < <=
==
!=
&&
||

Lembre-se de que você sempre pode alterar a ordem de precedência dos operadores em uma expressão com o uso de parênteses.

Operador de Concatenação de Strings

Concatenar significa unir duas strings (cadeias de caracteres) de modo a formar uma nova string. Existe apenas um operador de concatenação em PHP, que é o ponto (.) e ele, naturalmente, se aplica somente a operações realizadas com strings.

Vamos ver um exemplo do operador de concatenação juntando duas strings.

<?php
   $k = "Fábio";
   $nome = $k . " dos Reis";
   echo $nome;
?>

Se você concatenar uma string com um dado de outro tipo, o resultado também será uma string.

Próximo: Estruturas de Controle Condicional em PHP

 

Sobre Fábio dos Reis (1325 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*