Operadores são usados para operar valores. Eles podem ser agrupados em cinco tipos: aritméticos, de atribuição, de comparação, lógicos e operadores bit a bit.
Os operadores aritméticos
Os operadores aritméticos incluem as quatro operações básicas, assim como o operador módulo (%) que é usado para obter o resto da divisão.
<?php $x = 4 + 2; // 6 adição $x = 4 - 2; // 2 subtração $x = 4 * 2; // 8 multiplicação $x = 4 / 2; // 2 divisão $x = 4 % 2; // 0 modulo (Resto da divisão) ?>
Operadores de atribuição
O segundo grupo é os operadores de atribuição. Mais importante ainda, o operador de atribuição (=) em si, o que atribui um valor a uma variável.
<?php $x = 4; $variavel = 200; ?>
Operadores de atribuição combinados
Um uso comum dos operadores de atribuição e aritméticos é operar em uma variável e, em seguida, salvar o resultado de volta para essa mesma variável. Estas operações podem ser encurtado com os operadores de atribuição combinados.
<?php $x = 0; $x += 5; // é o mesmo que $x = $x + 5; $x -= 5; // é o mesmo que $x = $x - 5; $x *= 5; // é o mesmo que $x = $x * 5; $x /= 5; // é o mesmo que $x = $x / 5; $x %= 5; // é o mesmo que $x = $x % 5; ?>
Operadores de incremento e decremento
Outra operação comum é para aumentar ou diminuir uma variável em um. Isso pode ser simplificado com o incremento (++) e decremento (–) operadores.
<?php $x++ ; // é o mesmo que $x += 1; $x-- ; // é o mesmo que $x -= 1; ?>
Ambos os operadores podem ser utilizados antes ou depois de uma variável.
<?php $x++; // pós-incremento $x−−; // pós-decremento ++$x; // pré-incremento −−$x; // pré-decremento ?>
O resultado sobre a variável é o mesmo o que é usado. A diferença é que o pós-operador retorna o valor original antes que altera a variável, enquanto que o pré-operador muda a primeira variável e, em seguida, devolve o valor.
<?php $x = 5; $y = $x++; // $x=6, $y=5 $x = 5; $y = ++$x; // $x=6, $y=6 ?>
Os operadores de comparação
Os operadores de comparação comparam dois valores e retornar verdadeiro(true) ou falso(false) como resultado. Eles são usados principalmente para especificar condições, que são expressões que resultam em verdadeiras ou falsas.
<?php $x = (2 == 3); // false // igual $x = (2 != 3); // true // não igual $x = (2 <> 3); // true // não igual (alternativo) $x = (2 === 3); // false // Idêntico $x = (2 !== 3); // true // diferente $x = (2 > 3); // false // maior do que $x = (2 < 3); // true // menor que $x = (2 >= 3); // false // maior e igual a $x = (2 <= 3); // true // menor e igual a ?>
O operador idêntico (===) é utilizado para comparar o valor e o tipo de dados dos operandos. Ela retorna verdadeiro se ambos os operadores têm o mesmo valor e são do mesmo tipo. Da mesma forma, o operador não idênticos (!==) Retorna true se os operandos não tem o mesmo valor ou não são do mesmo tipo. Dito de outra forma, os operadores de igualdade irá realizar conversões de tipo, enquanto os operadores idênticos não.
<?php $x = (1 == "1"); // true (algum valor) $x = (1 === "1"); // false (tipos diferentes) ?>
Os operadores lógicos
Os operadores lógicos são muitas vezes utilizados em conjunto com os operadores de comparação. O valor lógico “e” (&&) avalia como verdadeiro se ambos os lados esquerdo e direito são verdadeiras, e lógico “ou” ( || ) avalia como verdadeiro se tanto o lado esquerdo ou direito é verdade. O não operador lógico ( ! ) É usado para inverter um resultado booleano. Note que tanto para o ” ‘e’ lógico” e ” ‘ou’ lógico” no lado direito do operador não será avaliado se o resultado já é determinado pelo lado esquerdo.
<?php $x = (true && false); // false // E lógico(AND) $x = (true || false); // true // OU Lógico (OR) $x = !(true); // false // negação lógico ?>
Operadores bit a bit
Os operadores bit a bit pode manipular dígitos binários de números. Por exemplo, o operador XOR ( ^ ) liga os bits que são definidos em um lado do operador, mas não em ambos os lados.
<?php $x = 5 & 4; // 101 & 100 = 100 (4) // AND $x = 5 | 4; // 101 | 100 = 101 (5) // OR $x = 5 ^ 4; // 101 ^ 100 = 001 (1) // XOR (OU Exclusivo) $x = 4 << 1; // 100 << 1 =1000 (8) // Deslocamento a Esquerda $x = 4 >> 1; // 100 >> 1 = 10 (2) // Deslocamento a Direito $x = ~4; // ~00000100 = 11111011 (-5) // Inverter ?>
Estes operadores bit a bit têm operadores de atribuição de taquigrafia, assim como os operadores aritméticos.
<?php $x=5; $x &= 4; // 101 & 100 = 100 (4) // AND $x=5; $x |= 4; // 101 | 100 = 101 (5) // OR $x=5; $x ^= 4; // 101 ^ 100 = 001 (1) // XOR $x=5; $x <<= 1; // 101 << 1 =1010 (10) // Descolamento a Esquerda $x=5; $x >>= 1; // 101 >> 1 = 10 (2) // Deslocamento a Direita ?>
Operador precedência
No PHP, as expressões são normalmente avaliadas da esquerda para a direita. No entanto, quando uma expressão contém vários operadores, a precedência dos operadores determina a ordem em que eles são avaliados.
Precedência | Operador | Precedência | Operador |
1 | ++ — | 10 | ^ |
2 | ~ – (unário) | 11 | | |
3 | ! | 12 | && |
4 | * / % | 13 | || |
5 | + – (binário) | 14 | = op = |
6 | << >> | 15 | AND |
7 | <<= >>= <> | 16 | XOR |
8 | == != === !== | 17 | OR |
9 | & |
Por exemplo, lógica e (&&) liga-se no mais fraco dos operadores relacionais, que por sua vez se liga mais fraco dos operadores aritméticos.
<?php $x = 2+3 > 1*4 && 5/5 == 1; // true ?>
Para tornar as coisas mais claras, parênteses podem ser usados para especificar qual parte da expressão será avaliada primeiro. Parênteses têm a mais alta precedência de todos os operadores.
<?php $x = ((2+3) > (1*4)) && ((5/5) == 1); // true ?>
Operadores lógicos adicionais
Na tabela de precedência, uma observação especial dos últimos três operadores: AND, OR e XOR. Os operadores AND e OR trabalham da mesma forma como os lógicos && e ||. A única diferença é o seu menor nível de precedência.
<?php // Mesmo que: $a = (true && false); $a = true && false; // $a is false // Mesmo que: ($a = true) and false; $a = true and false; // $a is true ?>
O operador XOR é uma versão booleana do bit a bit, com operador “ ^ “. Ele avalia como verdadeiro se apenas um dos operandos são verdadeiras.
<?php $a = (true xor true); // false ?>
Link Importante
Visão geral de operadores : http://php.net/manual/pt_BR/language.operators.php
Dúvidas? Comente!
No tutorial de Operadores no PHP você pode ver que é simples e não há mistério, pra quem faz algum curso acadêmico em Computação terá mais facilidade para entender os Operadores Lógicos, mas se você não conhece, pesquise e estude, pois é importante!