Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Operadores de atribuição
  2. Operadores aritméticos
  3. Operadores lógicos
  4. Operadores relacionais
  5. Operadores bit-a-bit/bitwise
  6. Operador instanceof
  7. Operador insteadof
  8. Outros operadores
  9. Precedência de operadores
  10. Operadores de strings
  11. Operadores de vetor/array

Para declararmos expressões em qualquer linguagem de programação precisamos utilizar os operadores. Os conceitos de expressões e operadores já foram vistos em Portugol: Expressões e Operadores e Tutorial C: Operadores. Em caso de dúvida é recomendado a leitura.

A linguagem PHP fornece recurso para criarmos expressões dos tipos aritméticas, lógicas e relacionais e bit-a-bit. Nesta seção, vamos discutir sobre os operadores que são utilizados para criar expressões.

Os operadores de strings e vetor(array) serão vistos em PHP Básico: String e PHP Básico: Vetor.

Para atribuirmos valores a variáveis e constantes, PHP utiliza a tabela de operadores de atribuição abaixo:

Tab. 1: Operadores de atribuição
Operador Descrição Exemplo
= Atribuição $a=$b
+= Atribuição acumulativa de adição $a+=$b
-= Atribuição acumulativa de subtração $a-=$b
*= Atribuição acumulativa de multiplicação $a*=$b
%= Atribuição acumulativa de Módulo $a%=$b
/= Atribuição acumulativa de divisão $a%=$b
??= - $a??=$b
Sintaxe
$variavel1|valor operador $variavel2|valor2

$variavel1 operador= $variavel2
Exemplo 1
//main.php
<?php
  $a = 4;
  $b = 2;
  printf("%d\n",$a += $b );
  printf("%d\n",$a -= $b );
  printf("%d\n",$a *= $b );
  printf("%d\n",$a /= $b );
  printf("%d\n",$a += $b );
  printf("%d\n",$a %= $b );
?>
Saída
6
4
8
4
6
0

Para criação de expressões aritméticas utilizamos os operadores abaixo suportados pela linguagem PHP:

Tab. 2: Operadores Aritméticos
Operador Descrição Exemplo
+ Adição $a+$b
- Subtração $a-$b
* Multiplicação $a*$b
/ Divisão $a/$b
% Módulo $a%$b
++ Incremento ++$a , $a++
-- Decremento --$a, $a--
-(Unário) Sinal -$a
+(Unário) Sinal +$a
** Exponencial $a**$b
Sintaxe
$variavel1|valor operador $variavel2|valor2

operador_incremento$variavel
operador_decremento$variavel

$variaveloperador_incremento
$variaveloperador_decremento
Exemplo 2
<?php
  $a = 4;
  $b = 2;
  printf("%d\n",$a + $b );
  printf("%d\n",$a - $b );
  printf("%d\n",$a * $b );
  printf("%d\n",$a / $b );
  printf("%d\n",$a + $b );
  printf("%d\n",$a % $b );
  printf("%d\n",--$a );
  printf("%d\n",++$b );
?>
Saída
6
2
8
2
6
0

Os operadores -- e ++ utilizados antes ou depois da variável são chamados pré incrementado e pós incrementado. O funcionamento desses operadores foi dicutida quando operadores aritméticos foram estudados em Portugol: Operadores aritméticos e Tutorial C: Operadores aritméticos.

A linguagem PHP fornece os seguintes operadores para que possamos usá-lo para tomada de decisões baseados na comparação de expressões, variáveis ou valores. Esses operadores retornam true(1) e false(0).

Tab. 3: Operadores Relacionais
Operador Descrição Exemplo
== Igual $a == $b
>= Maior ou igual $a >= $b
<= Menor ou igual $a <= $b
!= Diferente $a != $b
> Maior $a > $b
< Menor $a < $b
=== $a == $b e tipos iguais $a === $b
!== $a != $b e tipos diferentes $a === $b
<=> - $a <==> $b
Sintaxe
$variavel1|expressao1 operador $variavel2|expressao2
Exemplo 3
//main.php
<?php
  $a = true; //1
  $b = false; //0
  printf("%d\n",$a >  $b );
  printf("%d\n",$a <  $b );
  printf("%d\n",$a >= $b );
  printf("%d\n",$a <= $b );
  printf("%d\n",$a == $b );
  printf("%d\n",$a != $b );
  printf("%d\n",$a === $b );
  printf("%d\n",$a !== $b );
?>

Saída
1
0
1
0
0
1
0
1

Para entendermos sobre a aplicação dos operadores lógicos é importante entender sobre a tabela verdade que foi explicado em Portugol: Operadores Lógicos e Tutorial C: Operadores Lógicos.

A criação de expressões lógicas é feita utilizando os operadores abaixo suportados por PHP:

Tab. 4: Operadores lógicos
Operador Significado Exemplo
and E lógico $a and $b
or OR lógico $a or $b
xor OR-Excluivo lógico $a or $b
&& E lógico $a && $b
|| OR lógico $a || $b
! Não lógico !a

Os operadores lógicos retornam um valor booleano true(1) ou false(0). Esse tipo de operador é muito utilizado para tomada de decisão.

Sintaxe
$variavel1|expressao1 operador $variavel2|expressao2
Exemplo 4
//main.php
<?php
  $a = true;
  $b = false;
  printf("%d\n",$a and $b );
  printf("%d\n",$a or $b );
  printf("%d\n",$a xor $b );
  printf("%d\n",$a && $b );
  printf("%d\n",$a || $b );
  printf("%d\n",!$a);
?>
Saída
0
1
1
0
1
0

O uso dos operadores bit-a-bit já foi estudado em Tutorial C: Operadores bit-a-bit . É importante entender sobre as tabelas verdades que foram explicado em Portugol: Operadores Lógicos.

Os operadores bit-a-bit são operadores utilizados para trabalhar com manipulação dos bits de variáveis. A linguagem PHP fornece os seguintes operadores:

Tab. 5: Operadores bitwise
Operador Descrição Exemplo
& E bit-a-bit $a & $b
| OR bit-a-bit $a | $b
^ Ou Exclusivo $a ^ $b
~ Não bit-a-bit ~a
>> Desloca N bits à direita $a >>$b
<< Desloca N bits à esquerda $a << b
Sintaxe
$variavel1 operador $variavel1

$variavel|expressao << quantidade_bits

$variavel|expressao >> quantidade_bits

~$variavel|expressao
Exemplo 5
//main.php
<?php
  $a = 2;
  $b = 1;
  printf("%b\n",$a & $b );
  printf("%b\n",$a| $b );
  printf("%b\n",$a ^ $b );
  printf("%b\n",(~$b)&2); //apenas 2 bits
  printf("%d\n",$a >> $b );
  printf("%d\n",$a << $b );
?>
Saída
0
11
11
10
1
4

O operador instanceof é usado para verificar se uma variável ou objeto é um instância de uma classe, subclasse ou se herda de uma classe ou interface. Esse operador retorna um booleano.

Sintaxe
nome_objeto instanceof nome_classe
Retorno
true se é instância
false caso contrário
Exemplo 6
//main.php
<?php
class classe_base {}
interface minha_interface {}
class minha_classe extends classe_base implements minha_interface{}

$obj = new minha_classe();

var_dump($obj instanceof classe_base);
var_dump($obj instanceof minha_classe);
var_dump($obj instanceof minha_interface);
?>
Saída
bool(true)
bool(true)
bool(true)

Mais informações sobre classe, interface e herança podem ser vistas em PHP: POO > Classe, PHP: POO > Interface e PHP: POO > Herança.

O operador insteadof é usado para resolver conflitos de nomes de traits com nomes homôninos implementados por um classe. Esse operador é utilizado dentro do bloco use como visto na sintaxe logo abaixo:

Sintaxe
use nome_trait1, nome_trait2 {
   nome_trait::nome_metodo insteadof nome_trait;
}
Exemplo 6
//main.php
<?php
class MinhaClasse {
    use Trait1, Trait2 {
        Trait2::metodo insteadof Trait1; // Explicitly use TraitB's method
    }
}
?>
Saída
-

O assunto Trait pode ser visto com mais informações em PHP: POO > Trait.

Todos os outros operadores listados na tabela abaixo estão entre os mais comuns não categorizados e estudados acima. Outros operadores serão adicionados em futuras atualizações.

Tab. 6: Outros operadores - Em construção
Operador Descrição Exemplo
. Concatenação de string -
?: if ternário -
-> Acesso a membros -
?? Operador de nulidade -
=> Associação de valor, função -
as - -
Exemplo 6
//main.php
<?php
$v = 100;

echo "string"."string"; //concatenação de string
echo "\n";

echo 1 > 0 ? "true" : "false"; //if ternário
echo "\n";

$fnc = fn($x) => $x*2; //=> expressão lambda
echo $fnc(2),"\n";

class ClassA{
    public $campo = 999;
} //instanceof

$cls = new ClassA();
echo $cls->campo;
echo "\n";
?>
Saída
stringstring
true
4
999

O validação do uso dos operadores estudados acima seguem uma ordem ou precedência. A tabela abaixo resume essa precedência da mais alta até a mais baixa.

Tab. 7: Precedência
Operador Descrição
clone new -
** aritmético
+ - ++ -- ~ (int) (float) (string) (array) (object) (bool) @ (unário + e -), incremento/decremento, bitwise, casting
instanceof tipo
* / % aritmético
! lógico
+ - . aritmético (binário + e -), vetor e string (< 8.0.0)
<< >> bit-a-bit
. string ( 8.0.0)
< <= > >= comparação
== != === !== <> <=> comparação
& Deslocamento
^ bit-a-bit
| bit-a-bit
&& lógico
|| lógico
?? nulidade
?: ternário
= += -= *= **= /= .= %= &= |= ^= <<= >>= ??= atribuição
yield from -
yield -
print -
and lógico
xor lógico
or lógico
  1. 04/01/2026 - revisão 4 - Adição: insteadof e instanceof
  2. 20/08/2025 - revisão 3 - Ajustes: pontuais, sintaxes e target de links internos; Adição: Ex.6
  3. 21/09/2024 - revisão 2 - Correção em links portugol;ajustes gramaticais e outros
  4. 05/02/2024 - revisão 1 - correção em navegação e erros gramaticais
  5. 20/09/2023 - versão inicial