Aula 03 – Operadores

Operadores são usados para se obter um resultado a partir de um ou mais valores. Existem três tipos de operadores. Os operadores unários, que são usados para apenas para um valor, exemplo: ! (negação). Os operadores binários que são os mais usados, como exemplo: && e ==. E o operador ternário, que veremos ao fim dessa aula.
1. Operadores aritméticos
Acredito que isso não seja nenhuma surpresa para quem já programou em alguma outra linguagem. Os operadores são basicamente os mesmos. São eles:
| Operador | Símbolo | Exemplo | Resultado |
| Adição | + | 10 + 4 | 14 |
| Subtração | - | 10 - 4 | 6 |
| Multiplicação | * | 10 * 4 | 40 |
| Divisão | / | 10 / 4 | 2.5 |
| Resto da divisão | % | 10 % 4 | 2 |
2. Operadores binários
São os famosos operadores bit-a-bit, onde é possível ligar e desligar bits entre dois números inteiros. Caso seja usado uma string no lugar de um inteiro o mesmo será convertido para inteiro usando os valores da tabela ASCII. Numa operação bit-a-bit é usado o valor binário de um determinado número.
| Operador | Símbolo |
| Negação (NOT) | ~ |
| Ou (OR) | | |
| E (AND) | & |
| Ou exclusivo (XOR) | ^ |
| Deslocamento à esquerda | << |
| Deslocamento à direita | >> |
Considere os números 10 e 14 que possuem as seguintes representações:
| Decimal | Binário |
| 10 | 1010 |
| 14 | 1110 |
Exemplo:
$a = 10; // 1010 $b = 14; // 1110 echo decbin(~$a); // 0101 echo decbin($a | $b); // 1110 echo decbin($a & $b); // 1010 echo decbin($a ^ $b); // 0100 echo decbin($a << 2); // 101000 echo decbin($a >> 2); // 0010
Observação: a função string decbin (int) retorna uma string com o valor binário de um número inteiro.
3. Operadores de atribuição
Na linguagem PHP existem várias maneiras de se atribuir um valor a uma variável ou função, que podem ser de simples atribuição, atribuição com adição, atribuição com subtração, etc.
| Operador | Símbolo |
| Atribuição com adição | += |
| Atribuição com subtração | -= |
| Atribuição com multiplicação | *= |
| Atribuição com divisão | /= |
| Atribuição com resto da divisão | %= |
| Atribuição com concatenação | .= |
| Atribuição com operador binário OR | |= |
| Atribuição com operador binário AND | &= |
| Atribuição com operador binário XOR | ^= |
| Atribuição com deslocamento à esquerda | <<= |
| Atribuição com deslocamento à direita | >>= |
Exemplo:
$a = 10; $a += 5; echo $a; // 15 $a -= 5; echo $a; // 10 $a *= 5; echo $a; // 50 $a /= 5; echo $a; //10 $a %= 8; echo $a; // 2 $a = "Bom "; $a .= "dia!"; echo $a; // Bom dia! $a = 10; $a |= 14; echo decbin($a); //1110 $a = 10; $a &= 14; echo decbin($a); //1010 $a = 10; $a ^= 14; echo decbin($a); //0100 $a = 10; $a <<= 2; echo decbin($a); //101000 $a = 10; $a >>= 2; echo decbin($a); //0010
4. Operadores de incremento e decremento
Assim como na maioria das linguagens o PHP também possui "atalhos" para operações de incremento e decremento que são bastante utilizados para facilitar e agilizar a programação. São eles:
| Operador | Descrição | Exemplo |
| Pré incremento | Incrementa a variável em um e retorna seu valor | ++$x |
| Pós incremento | Retorna o valor da variável e incrementa seu valor em um | $x++ |
| Pré decremento | Decrementa a variável em um e retorna seu valor | --$x |
| Pós decremento | Retorna o valor da variável e decrementa seu valor em um | $x-- |
Exemplo:
$a = 5; $b = ++$a; echo $a . ' ' . $b; // 6 6 $a = 5; $b = $a++; echo $a . ' ' . $b; // 6 5 $a = 5; $b = --$a; echo $a . ' ' . $b; // 4 4 $a = 5; $b = $a--; echo $a . ' ' . $b; // 4 5
5. Operadores relacionais
Operadores relacionais são usados para testar determinadas condições. Suas comparações retornam verdadeiro ou falso.
| Operador | Símbolo |
| Igualdade | == |
| Testa igualdade e tipo | === |
| Maior | > |
| Menor | < |
| Maior ou igual | >= |
| Menor ou igual | <= |
| Diferente | != |
| Testa diferença e tipo | !== |
Exemplo:
var_dump(5 == 5); // true var_dump(5 == '5'); // true var_dump(5 === '5'); // false var_dump(5 > 3); // true var_dump(5 < 3); // false var_dump(5 >= 6); // false var_dump(5 <= 6); // true var_dump(5 != 5); // false var_dump(5 !== '5'); // true
Observação: a função void var_dump (mixed) escreve o tipo e valor de uma variável ou expressão.
6. Operadores lógicos
Operadores lógicos servem para determinar se o resultado entre duas ou mais sentenças são verdadeiros ou falsos.
| Operador | Símbolo |
| Negação (NOT) | ! |
| E (AND) | && |
| AND (equivale a &&) | AND |
| Ou (OR) | || |
| OR (equivale a ||) | OR |
| Ou exclusivo (XOR) | XOR |
Exemplo:
var_dump(! 5=='5'); // false var_dump(5===5 && 1==true); // true var_dump(5>3 || 1==false); // true var_dump(true AND 10%3); // true var_dump(5<=6 OR false); // true var_dump(10%5 XOR 6>3); // true
A diferença entre os operadores && e AND e || e OR está na sua precedência. Veja mais em http://php.net/manual/pt_BR/language.operators.precedence.php.
7. Operador ternário
O operador ternário serve para selecionar entre dois valores a partir de uma expressão lógica. Abaixo um exmplo de seu uso:
$a = (2==2) ? "Verdadeiro" : "Falso"; echo $a; // Verdadeiro $a = (true && 3==='3') ? "TRUE" : "FALSE"; echo $a; // FALSE $a = 3; ($a > 5) ? executa_funcao_1() : executa_funcao_2(); // Executa funçao 2
Acho que não esqueci de nenhum. Qualquer dúvida ou sugestão comentem.
Até a próxima.