Precedência: O que é?
Quanto é: 1+2*3 ?
Alguns podem fazer a multiplicação antes, e daria 7.
Outros fariam a soma primeiro, e o resultado seria 9.
"Ah, mas é só lembrar da Matemática da escola".
Sim, em parte sim. Porém, em programação PHP, temos diversos operadores, que não tem na escola, como incremento e decremento (vamos aprender melhor na seção de Laços e Loopings).
Mas, o computador não pode ter dúvidas, toda máquina deve resultar no mesmo valor como resultado de uma expressão matemática.
Visando deixar isso bem claro, existe uma precedência de operadores.
Precedência de Operadores
Da maior (de cima), pra menor (indo pra baixo), a ordem que o PHP vai executar as operações é:
- () : Parêntesis
- ++ -- : Operadores de incremento e decremento
- ! : Operador lógico
- * / % : Operadores aritméticos
- + - . : Operadores aritméticos e de string
- << >> : Bitwise
- < <= > >= <> : Operadores de comparação
- == != === !== : Operadores de comparação
Não se estresse com os operadores que não conhece, você vai aprendê-los durante nosso curso, lá na frente, sem pressa.
Note que o operador mais poderoso é o de parêntesis.
No caso inicial de nosso tutorial:
1 + 2*3 = 1 + 6 = 7
(1+2)*3 = 3*3 = 9
Ou seja, sempre que tiver expressões grandes e complicadas, saia colocando parêntesis, até deixa mais legível seu código.
Nos exercícios propostos da seção Básico do PHP, vamos usar algumas expressões maiores (como calcular área de círculo, converter temperaturas etc).
Exercícios de Precedência de Operadores
Digite nos comentários os seus resultados:
- ((1 + 2) * 3 - 4) * 5
- (6 - 7) * 8 * 9 + 10
- (10 + 9 - 8 + 7) * 6