Agora que já sabemos como criar nossa variáveis e definir seus valores, vamos falar sobre os operadores, que são de extrema importância para desenvolver os seus códigos e montar as lógicas de seus scripts. Os operadores são símbolos que atuam sobre as varíaveis e valores. Ou seja, você alimenta ele com um ou mais valores e ele te retorna com outro valor.
Os operadores se dividem nas seguintes categorias:
- Operadores Aritméticos
- Operadores de Atribuição
- Operadores Bit-a-bit
- Operadores de Comparação
- Operador de Controle de Erro
- Operadores de Execução
- Operadores de Incremento/Decremento
- Operadores Lógicos
- Operadores de String
- Operadores de Arrays
- Operador de Tipo
Operadores Aritméticos
Este tipo de operador só pode ser utilizado quando os operandos são números (integer ou float). Caso não sejam, eles serão convertidos antes da realização da operação. Basicamente são os operadores de cálculos. Veja abaixo:
Exemplo | Nome | Resultado |
---|---|---|
-$a | Negação | Oposto de $a. |
$a + $b | Adição | Soma de $a e $b. |
$a – $b | Subtração | Diferença entre $a e $b. |
$a * $b | Multiplicação | Produto de $a e $b. |
$a / $b | Divisão | Quociente de $a por $b. |
$a % $b | Módulo | Resto de $a dividido por $b. |
Exemplos de Operadores Aritméticos:
<?php $a = 2; $b = 3; $adicao = $a + $b; // $adicao = 5 $subtracao = $a - $b; // $subtracao = -1 $multiplicacao = $a * $b; // $multiplicacao = 6 $divisao = $a / $b; // $divisao = 0.66666666666667 $modulo = $a % $b; // $modulo = 2 echo "Adição: $adicao <br />"; echo "Subtração: $subtracao <br />"; echo "Multiplicação: $multiplicacao <br />"; echo "Divisão: $divisao <br />"; echo "Módulo: $modulo <br />"; ?>
Operadores de Atribuição
Este operador é identificado pelo símbolo “=“. A princípio, você deve estar pensando que significa “é igual“, mas não é bem assim. Você deve entender que o primeiro operando (da esquerda) recebe o valor da expressão da direita. Vejamos a tabela abaixo:
Símbolo | Tipo |
---|---|
= | atribuição simples |
+= | atribuição com adição |
-= | atribuição com subtração |
*= | atribuição com multiplicação |
/= | atribuição com divisão |
%= | atribuição com módulo |
.= | atribuição com concatenação |
Exemplos de Operadores de Atribuição
<?php $a = 2; // Atribuição simples $b = 3; // Atribuição simples $c = 4; // Atribuição simples $a += $a; // Atribuição com soma - (2+2) $a = 4; echo "A=$a <br />"; $a -= $b; // Atribuição com subtração - (4-3) $a = 1; echo "A= $a <br />"; $b *= $b; // Atribuição com multiplicação - (3*3) $b = 9; echo "B= $b <br />"; $b /= $b; // Atribuição com divisão - (9/9) $b = 1; echo "B= $b <br />"; $b %= $b; // Atribuição com módulo - (1%1) $b = 0; echo "B=$b <br />"; $nome = "Diego"; // Atribuição simples $nome .= " Macêdo"; // Atribuição com concatenação echo $nome; ?>
Operadores Bit-a-Bit
Estes operadores comparam dois números bit-a-bit, ou seja, eles permitem que você acione ou desligue bits específicos dentro de um número inteiro. Se ambos os parâmetros da esquerda e da direita forem strings, esses operadores irão trabalhar nos valores ASCII dos caracteres.
Exemplo | Nome | Resultado |
---|---|---|
$a & $b | E | Os bits que estão ativos tanto em $a quanto em $b são ativados. |
$a | $b | OU | Os bits que estão ativos em $a ou em $b são ativados. |
$a ^ $b | XOR | Os bits que estão ativos em $a ou em $b, mas não em ambos, são ativados. |
~ $a | NÃO | Os bits que estão ativos em $a não são ativados, e vice-versa. |
$a << $b | Deslocamento à esquerda | Desloca os bits de $a $b passos para a esquerda (cada passo significa “multiplica por dois”) |
$a >> $b | Deslocamento à direita | Desloca os bits de $a $b passos para a direita (cada passo significa “divide por dois”) |
Exemplos de Operadores Bit-a-Bit
<?php // Exemplo 1 $a = 1; echo ($a << 1)."<br />"; // Retorna 2 echo ($a << 2)."<br />"; // Retorna 4 // Exemplo 2 $b = 8; echo ($b >> 1)."<br />"; // Retorna 4 echo ($b >> 2)."<br />"; // Retorna 2 ?>
Operadores de Comparação
Este tipo permite que você compare os operandos. São muito úteis quando trabalhamos com estruturas condicionais, que veremos em outra aula.
Exemplo | Nome | Resultado |
---|---|---|
$a == $b | Igual | Verdadeiro (TRUE) se $a é igual a $b. |
$a === $b | Idêntico | Verdadeiro (TRUE) se $a é igual a $b, e eles são do mesmo tipo (introduzido no PHP4). |
$a != $b | Diferente | Verdadeiro se $a não é igual a $b. |
$a <> $b | Diferente | Verdadeiro se $a não é igual a $b. |
$a !== $b | Não idêntico | Verdadeiro de $a não é igual a $b, ou eles não são do mesmo tipo (introduzido no PHP4). |
$a < $b | Menor que | Verdadeiro se $a é estritamente menor que $b. |
$a > $b | Maior que | Verdadeiro se $a é estritamente maior que $b. |
$a <= $b | Menor ou igual | Verdadeiro se $a é menor ou igual a $b. |
$a >= $b | Maior ou igual | Verdadeiro se $a é maior ou igual a $b. |
Exemplos de Operadores de Comparação
<?php $a = 5; $b = 6; echo (int)($a == $b)."<br />"; // Retorna 0 "zero", que significa "false" echo (int)($a === $b)."<br />"; // Retorna 0 echo (int)($a > $b)."<br />"; // Retorna 0 echo (int)($a < $b)."<br />"; // Retorna 1 "um", que significa "true" echo (int)($a >= $b)."<br />"; // Retorna 0 echo (int)($a <= $b)."<br />"; // Retorna 1 echo (int)($a <> $b)."<br />"; // Retorna 1 echo (int)($a != $b)."<br />"; // Retorna 1 echo (int)($a !== $b)."<br />"; // Retorna 1 ?>
Operador de Controle de Erro
Quando precede uma expressão através do símbo “@” (arroba), ele ignora qualquer mensagem de erro que possa ser gerado.
Exemplo de Operador de Controle de Erro
<?php /* Erro de arquivo intencional */ $my_file = @file('arquivo_nao_existente') or die("Falha abrindo arquivo: '$php_errormsg'"); ?>
Operadores de Execução
O PHP tenta executar o conteúdo que está dentro dos acentos graves ““” (note que não são apóstrofos) como se fosse um comando shell e sua saída será retornada, ainda podendo ser armazenada em uma variável. Para Sistemas Operacionais Windows, você pode utilizar os comandos do DOS (dir, ping, etc), e para UNIX os seus comandos de terminais (ls, mkdir, etc). Tem a mesma função que shell_exec().
Exemplo de Operador de Execução
<?php $output = `ping "www.google.com.br"`; echo "<pre>$output</pre>"; ?>
Operadores de Incremento e Decremento
Este operadores pode acrescentar ou retirar o valor unitário de uma variável.
Exemplos de Operadores de Incremento e Decremento
<?php echo "<h3>Pós-incremento</h3>"; $a = 5; echo "Deve ser 5: " . $a++ . "<br />\n"; echo "Deve ser 6: " . $a . "<br />\n"; echo "<h3>Pré-incremento</h3>"; $a = 5; echo "Deve ser 6: " . ++$a . "<br />\n"; echo "Deve ser 6: " . $a . "<br />\n"; echo "<h3>Pós-decremento</h3>"; $a = 5; echo "Deve ser 5: " . $a-- . "<br />\n"; echo "Deve ser 4: " . $a . "<br />\n"; echo "<h3>Pré-decremento</h3>"; $a = 5; echo "Deve ser 4: " . --$a . "<br />\n"; echo "Deve ser 4: " . $a . "<br />\n"; ?>
Operadores Lógicos
Estes operadores servem para unir valores booleanos e obter um terceiro valor booleano, dependendo dos dois primeiros. Existem quatro tipos destes operadores, onde três deles são binários. O único unário é o NOT, identificado pelo símbolo da exclamação “!“.
Exemplo | Nome | Resultado |
---|---|---|
$a and $b | E | Verdadeiro (TRUE) se tanto $a quanto $b são verdadeiros. |
$a or $b | OU | Verdadeiro se $a ou $b são verdadeiros. |
$a xor $b | XOR | Verdadeiro se $a ou $b são verdadeiros, mas não ambos. |
! $a | NÃO | Verdadeiro se $a não é verdadeiro. |
$a && $b | E | Verdadeiro se tanto $a quanto $b são verdadeiros. |
$a || $b | OU | Verdadeiro se $a ou $b são verdadeiros. |
Exemplos de Operadores Lógicos
<?php $a = false; $b = true; $c = true; echo (int)$a."<br />"; // Retorna 0 "zero" echo (int)$b."<br />"; // Retorna 1 echo (int)($b !== $c)."<br />"; // Retorna 0 echo (int)($b == $c)."<br />"; // Retorna 1 echo (int)($a !== $c)."<br />"; // Retorna 1 echo (int)($a xor $c)."<br />"; // Retorna 1 echo (int)($b xor $c)."<br />"; // Retorna 0 ?>
Operadores de String (Concatenação e Atribuição de Concatenação)
Existem dois tipos destes operadores. O primeiro é a concatenação, que já falamos algumas vezes antes, que utiliza o ponto-final “.” que retorna a concatenação do valor da esquerda com o da direita. E o outro é a Atribuição de Concatenação, que falamos lá em cima no tópico “Operadores de Atribuição”.
Exemplos de Operadores de String
<?php $a = "Olá "; $b = $a . "mundo!"; // agora $b contém "Olá mundo!" $a = "Olá "; $a .= "mundo!"; // agora $a contém "Olá mundo!" ?>
Operadores de Arrays
Basicamente são parecidos com a lógica dos operadores de comparação, mas nós veremos isso mais pra frente na nossa aula de “Arrays”.
Exemplo | Nome | Resultado |
---|---|---|
$a + $b | União | União de $a e $b. |
$a == $b | Igualdade | TRUE se $a e $b tem os mesmos pares de chave/valor. |
$a === $b | Identidade | TRUE se $a e $b tem os mesmos pares de chave/valor na mesma ordem e do mesmo tipo. |
$a != $b | Desigualdade | TRUE se $a não é igual a $b. |
$a <> $b | Desigualdade | TRUE se $a não é igual a $b. |
$a !== $b | Não identidade | TRUE se $a não é identico a $b. |
Exemplos de Operadores de Arrays
<?php $a = array("a" => "maçã", "b" => "banana"); $b = array("a" =>"pêra", "b" => "framboesa", "c" => "morango"); $c = $a + $b; // Uniao de $a e $b echo "União de $a e $b: \n"; print_r($c); echo "<br/>"; $c = $b + $a; // União de $b e $a echo "União de $b e $a: \n"; print_r($c); echo "<br/>"; var_dump($a !== $b); // bool(true) echo "<br/>"; var_dump($a === $b); // bool(false) echo "<br/>"; ?>
Operador de Tipo
instanceof é usado para determinar se um variável do PHP é uma objeto instânciado de uma certa “classe”. Não entrarei em detalhes aqui, pois foge do nosso escopo.
Exemplo de Operador de Tipo
<?php class MyClass { } class NotMyClass { } $a = new MyClass; var_dump($a instanceof MyClass); // Retorna true var_dump($a instanceof NotMyClass); // Retorna false ?>
Bom pessoal, acho que por hoje é só. Não deixe de testar cada exemplo e entender bem o que eles fazem. Não se preocupe em decorar todos eles, pois com o tempo você irá notar quais são mais importantes e usados.
Espero que tenham gostado e façam um bom uso deste post como referência de consultas.
Grande abraço!