Operator Precedence
Parte de la sección Fundamentos del Journey de PHP de Coddy. Lección 20 de 71.
Cuando una expresión contiene múltiples operadores, PHP sigue un orden específico llamado precedencia de operadores. Al igual que en las matemáticas, la multiplicación y la división se realizan antes que la suma y la resta.
<?php
echo 5 + 3 * 2; // Muestra: 11, no 16
?>PHP multiplica primero 3 × 2 (obteniendo 6) y luego suma 5. Si los operadores tuvieran la misma prioridad, se calcularía de izquierda a derecha: 5 + 3 = 8, luego 8 × 2 = 16. Pero así no es como funciona.
Aquí tienes la precedencia de mayor a menor para los operadores que has aprendido:
| Prioridad | Operadores |
| Máxima | ** (exponenciación) |
| Alta | * / % |
| Baja | + - |
Para anular el orden predeterminado, use paréntesis. Las operaciones dentro de los paréntesis siempre se evalúan primero:
<?php
echo (5 + 3) * 2; // Resultado: 16
echo 2 ** 3 * 2; // Resultado: 16 (8 * 2)
echo 2 ** (3 * 2); // Resultado: 64 (2^6)
?>Ante la duda, usa paréntesis para dejar claras tus intenciones. Esto hace que tu código sea más fácil de leer y evita resultados inesperados.
Desafío
FácilLee tres números de la entrada: a, b, y c.
Calcula e imprime el resultado de la siguiente expresión, utilizando paréntesis para asegurar que la suma ocurra antes de la multiplicación:
(a + b) * c ** 2
Esto significa: primero suma a y b, luego multiplica esa suma por c elevado a la potencia de 2.
Ejemplo:
Si las entradas son 2, 3, y 4, la salida debería ser 80 porque:
- Primero, suma 2 + 3 = 5
- Luego, calcula 4 ** 2 = 16
- Finalmente, multiplica 5 * 16 = 80
Pruébalo tú mismo
<?php
// Leer la entrada
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));
// TODO: Escribe tu código a continuación para calcular (a + b) * c ** 2
// Mostrar el resultado
echo $result;
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString OperatorsPractica por tu cuenta: Compilador de PHP online