Menu
Coddy logo textTech

Operator Precedence

Parte da seção Fundamentos do Journey de PHP da Coddy — lição 20 de 71.

Quando uma expressão contém múltiplos operadores, o PHP segue uma ordem específica chamada precedência de operadores. Assim como na matemática, a multiplicação e a divisão são realizadas antes da adição e da subtração.

<?php
echo 5 + 3 * 2; // Saída: 11, não 16
?>

O PHP multiplica 3 × 2 primeiro (obtendo 6), depois soma 5. Se os operadores tivessem prioridade igual, calcularia da esquerda para a direita: 5 + 3 = 8, depois 8 × 2 = 16. Mas não é assim que funciona.

Aqui está a precedência de maior a menor para os operadores que você aprendeu:

PrioridadeOperadores
Mais alta** (exponenciação)
Alta* / %
Baixa+ -

Para alterar a ordem padrão, use parênteses. Operações dentro dos parênteses são sempre avaliadas primeiro:

<?php
echo (5 + 3) * 2;  // Outputs: 16
echo 2 ** 3 * 2;   // Outputs: 16 (8 * 2)
echo 2 ** (3 * 2); // Outputs: 64 (2^6)
?>

Quando em dúvida, use parênteses para tornar suas intenções claras. Isso torna seu código mais fácil de ler e previne resultados inesperados.

challenge icon

Desafio

Fácil

Leia três números da entrada: a, b e c.

Calcule e imprima o resultado da seguinte expressão, usando parênteses para garantir que a adição ocorra antes da multiplicação:

(a + b) * c ** 2

Isso significa: primeiro some a e b, depois multiplique essa soma por c elevado à potência de 2.

Exemplo:

Se as entradas forem 2, 3 e 4, a saída deve ser 80 porque:

  • Primeiro, some 2 + 3 = 5
  • Depois, calcule 4 ** 2 = 16
  • Finalmente, multiplique 5 * 16 = 80

Folha de consulta

O PHP segue regras de precedência de operadores ao avaliar expressões com múltiplos operadores:

PrioridadeOperadores
Mais alta** (exponentiation)
Alta* / %
Baixa+ -
<?php
echo 5 + 3 * 2; // Saída: 11 (multiplicação primeiro)
?>

Use parênteses para alterar a ordem padrão. As operações dentro dos parênteses são avaliadas primeiro:

<?php
echo (5 + 3) * 2;  // Saída: 16
echo 2 ** 3 * 2;   // Saída: 16 (8 * 2)
echo 2 ** (3 * 2); // Saída: 64 (2^6)
?>

Experimente você mesmo

<?php
// Lê a entrada
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));

// TODO: Escreva seu código abaixo para calcular (a + b) * c ** 2

// Exibe o resultado
echo $result;
?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos