Precedência de Operadores
Parte da seção Fundamentos do Journey de PHP da Coddy. Lição 20 de 71.
Quando uma expressão contém vários operadores, 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) e, em seguida, adiciona 5. Se os operadores tivessem a mesma prioridade, ele calcularia da esquerda para a direita: 5 + 3 = 8 e, depois, 8 × 2 = 16. Mas não é assim que funciona.
Esta é a precedência, da mais alta à mais baixa, para os operadores que você aprendeu:
| Prioridade | Operadores |
| Mais alta | ** (exponenciação) |
| Alta | * / % |
| Baixa | + - |
Para substituir a ordem padrão, use parênteses. As operações dentro dos parênteses são sempre 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)
?>Quando estiver em dúvida, use parênteses para deixar claras as suas intenções. Isso torna seu código mais fácil de ler e evita resultados inesperados.
Desafio
FácilLeia 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 aconteça 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 deverá ser 80, porque:
- Primeiro, some 2 + 3 = 5
- Depois, calcule 4 ** 2 = 16
- Por fim, multiplique 5 * 16 = 80
Experimente você mesmo
<?php
// Ler 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
// Exibir o resultado
echo $result;
?>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
4Operadores de Comparação e Lógicos
Operadores de ComparaçãoIgualdade e IdentidadeOperadores Lógicos - Parte 1Operadores Lógicos - Parte 2Revisão - Lógica Simples2Variáveis e Tipos de Dados
NúmerosStrings e AspasBooleanosConvenções de NomenclaturaRevisão - Inicialização de VariáveisVariáveis VaziasConcatenação de StringsObtendo Entrada do UsuárioConversão para Diferentes Tipos5Lógica Condicional
Instrução IfIf - ElseO Operador TernárioOperador de Coalescência NulaInstrução SwitchRecapitulação - Tomando Decisões3Operadores Básicos
Operadores AritméticosOperador MóduloOperador de ExponenciaçãoAtribuição CombinadaIncremento/DecrementoPrecedência de OperadoresRevisão - Cálculos SimplesOperadores de StringPratique por conta própria: Compilador de PHP online