PHP: Operadores

Veja neste artigo informações sobre os principais operadores no PHP, mostraremos como trabalhar com esses operadores, sempre tentando informar de forma básica e clara, principalmente para quem está começando.

Os operadores nos permitem modificar ou obter novos valores a partir de uma ou mais variáveis. São agrupados segundo o número de valores que aceitam, um único valor, dois valores e três valores, conhecidos como Unários, Binários e Ternários respectivamente. Veremos neste artigo os principais grupos de operadores da linguagem PHP.

Operadores de String

São utilizados para concatenar argumentos, tendo 2 tipos:

Veja exemplos de Operadores de Strings na Listagem 1.

<?php $variavel = "Dev"; $variavel = $variavel . "media! "; $variavel2 = "Plataforma"; $variavel2 .= " para programadores!"; echo $variavel . $variavel2; ?>
Listagem 1. Exemplo de operadores de Strings
Nota: No PHP o += não é um operador de concatenação de Strings como em outras linguagens de programação, sendo apenas um operador de atribuição. E se utilizado será emitido um alerta do interpretador.

Operadores Aritméticos

São aqueles que estudamos na escola, aquelas funções básicas de somar, subtrair, multiplicar, dividir, etc. Neste caso se os operandos são números(INTEGER e FLOAT) podem ser usados normalmente, se forem de outro tipo, seus valores serão convertidos antes da realização da operação. Com estes operadores podemos fazer qualquer operação matemática com tipo de dados numéricos, veja abaixo os operadores aritméticos no PHP:

<?php $num1 = 2; $num2 = 4; $num3 = 6; //Resultado igual a 2 $resposta1 = $num2 - $num1; //Resultado igual a 8 $resposta2 = $num3 + $num1; //Resultado igual a 12 $resposta3 = $num1 * $num3; //Resultado igual a 2 $resposta4 = $num2 / $num1; //Resultado igual a 2, já que o resto da divisão de 8 por 6 é igual a 2 $resposta5 = $resposta2 % $num3; ?>
Listagem 2. Exemplo de operadores aritméticos

O PHP também possui outros operadores aritméticos que trabalham apenas com um operando, são os chamados operadores unários e que servem para: trocar sinais, incrementar ou decrementar valor.

Nota: No PHP o += não é um operador de concatenação de Strings como em outras linguagens de programação, sendo apenas um operador de atribuição. E se utilizado será emitido um alerta do interpretador.

Operadores de decremento e incremento

Vamos mostrar um exemplo simples, como mostra a Listagem 3.

<?php $num1 = 2; $num2 = 4; $num3 = 6; $num4 = 8; //Resultado igual a 3 $resposta1 = ++$num2 - $num1; //Resultado igual a 8 $resposta2 = $num3-- + $num1; //Resultado igual a 9 $resposta3 = --$num1 + $num4; ?>
Listagem 3. Exemplo de operadores aritméticos e decremento/incremento

No caso acima apresentamos os operadores aritméticos assim como as operações que incrementam e decrementam de forma simples.

Operadores de atribuição

No caso de operadores de atribuição, o PHP fornece um operador básico e diversos derivados, estes sempre retornam um valor atribuído. Nos operadores derivados de atribuição, a operação é feita entre os dois operandos, sendo atribuído o resultado ao primeiro. Veja a seguir os operadores de atribuição:

Vejamos um exemplo na Listagem 4.

<?php $num = 10; $num += 5; ?>
Listagem 4. Exemplo de operador de atribuição

Agora vamos ver um exemplo mais completo sobre operadores de atribuição, como mostra a Listagem 5.

<?php //Declaração das variáveis e atribuições simples $SOMAR = 0; $numero1 = 2; $numero2 = 3; $numero3 = 4; //Atribuição com adição $SOMAR += $numero1; $SOMAR += $numero2; //Atribuição com multiplicação $SOMAR *= $numero3; //Atribuição com módulos $SOMAR %= 3; echo $SOMAR; ?>
Listagem 5. Exemplo de operador de atribuição

Veja o resultado na Figura 2.

Figura 2. Resultado do código de operadores de atribuição

O resultado mostrado na figura é o resto da divisão que foi feita no final do código.

Operadores lógicos

Os operadores lógicos trabalham com valores booleanos, com o objetivo de avaliar expressões cujo valor pode ser verdadeiro ou falso, ou seja, implementando a lógica booleana.

Muito cuidado com a ordem de precedência (ordem de execução), ou você pode ter problemas com resultados, uma informação importante:

Veja um exemplo com o uso dos operadores lógicos na Listagem 6.

<?php $booleano1 = true; $booleano2 = false; $booleano3 = true; if ($booleano1 and $booleano2) { echo "Verdadeiro"; } else { //Resultado é falso pois os valores das variáveis são diferentes echo "Falso"; } if ($booleano1 or $booleano2) { //Resultado é verdadeiro pois uma das variáveis é verdadeira echo "Verdadeiro"; } else { echo "Falso"; } if ($booleano1 xor $booleano3) { echo "Verdadeiro"; } else { //Resultado é falso pois os valores de ambas as variáveis são verdadeiras echo "Falso"; } if (!$booleano2) { //Resultado é verdadeiro pois o valor da variável é falso echo "Verdadeiro"; } else { echo "Falso"; } if ($booleano1 && $booleano3) { //Resultado é verdadeiro pois ambos os valores das variáveis são verdadeiros echo "Verdadeiro"; } else { echo "Falso"; } if (!$booleano1 || !$booleano3) { echo "Verdadeiro"; } else { //Resultado é falso, pois o valor de ambas as variáveis foram invertidas para falso echo "Falso"; } ?>
Listagem 6. Exemplo de operador de lógicos

No exemplo acima é realizado o teste de cada tipo de operador.

Operadores de comparação

Operadores de comparação ou condicionais, são aqueles capazes de fazer comparações entre variáveis, com eles podemos saber se uma variável é maior que a outra, diferente, etc. Veja abaixo os operadores de comparação:

Veja um exemplo com o uso dos operadores de comparação na Listagem 7.

<?php $numero1 = 15; $numero2 = 5; $numero3 = 5; //Verifica se $numero1 é igual a $numero2 if ($numero1 == $numero2) { echo "Sim"; } else { echo "Não"; } //Verifica se $numero1 é diferente de $numero2 if ($numero1 != $numero2) { echo "Sim"; } else { echo "Não"; } //Verifica se $numero1 é menor que $numero2 if ($numero1 < $numero2) { echo "Sim"; } else { echo "Não"; } //Verifica se $numero3 é maior que $numero1 if ($numero3 > $numero1) { echo "Sim"; } else { echo "Não"; } //Verifica se $numero1 é menor ou igual a $numero2 if ($numero1 <= $numero2) { echo "Sim"; } else { echo "Não"; } //Verifica se $numero1 é maior ou igual a $numero2 if ($numero1 >= $numero2) { echo "Sim"; } else { echo "Não"; } //Verifica se $numero1 é idêntico a $numero2 if ($numero3 === $numero2) { echo "Sim"; } else { echo "Não"; } //Verifica se $numero1 não é idêntico a $numero2 if ($numero1 !== $numero2) { echo "Sim"; } else { echo "Não"; } /*Define o inteiro 1 como resultado da comparação, pois $numero1 é maior que $numero2*/ if ($numero1 <=> $numero2) { echo "Sim"; } else { echo "Não"; } ?>
Listagem 7. Exemplo de operador de comparação

Precedência de operadores

Numa expressão onde é utilizado mais um operador o PHP verifica a precedência de cada um deles, onde determinados operadores possuirão menor, igual ou maior prioridade do que os demais. Por exemplo, os 20 + 4 * 2, a resposta é 28 e não 48, porque o operador de multiplicação "*" tem prioridade maior do que o operador de adição "+".

Os parênteses podem ser utilizados para forçar a precedência, se necessário. Assim, (8 - 5) * 3 é avaliado como 9. A tabela seguinte mostrará a precedência dos operadores, classificados de cima para baixo, do maior para menor. Operadores com a mesma precedência estão na mesma linha, nesses casos a associatividade deles decidirá qual ordem eles serão avaliados:

Associação Operadores
não associativo clone new
esquerda [
direita **
direita ++ -- ~ (int) (float) (string) (array) (object) (bool) @
não associativo instanceof
direita !
esquerda * / %
esquerda + - .
esquerda << >>
não associativo < <= > >=
não associativo == != === !== <> <=>
esquerda &
esquerda ^
esquerda |
esquerda &&
esquerda ||
direita ??
esquerda ? :
direita = += -= *= **= /= .= %= &= |= ^= <<= >>=
esquerda and
esquerda xor
esquerda or
Tabela. Precedência de operadores

Na tabela que determinados operadores possuem a associatividade a esquerda, a direita ou não possuem. Esta associatividade consiste na ordem em que o PHP irá interpretará os operadores. Veja nos exemplos a seguir na prática como é o funcionamento:

<?php $a = 2; $b = 4; $c = 5; //Resultado igual 22 $calculo = $a + $b * $c; //Resultado igual 10 $caclulo_2 = $b / $a * $c; $d = true; $e = false; $f = true; //Utilização de 2 operadores lógicos if ($d || $e && $f){ //Condição }
Listagem 8. Exemplo de precedência de operadores

Quando operadores tem precedência igual a associatividade será efetuda conforme mostrado na tabela de precedência, se irá ser a esquerda ou direita. E operadores de igual precedência sem associatividade não podem ser utilizados uns próximos aos outros. Veja o exemplo abaixo:

<?php $a = 2; $b = 4; $c = 5; //Comparação ilegal por serem operadores não associativos if ($a > $b < $c) { //condição } //Comparação ilegal por serem operadores não associativos if ($d == $e !== $f){ //Condição }
Listagem 9. Exemplo de operações ilegais no PHP

Apresentamos nesse artigo os operadores mais utilizados na linguagem PHP.

Artigos relacionados