Menu
Coddy logo textTech

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 matemáticas, la multiplicación y la división se realizan antes que la suma y la resta.

<?php
echo 5 + 3 * 2; // Salida: 11, no 16
?>

PHP multiplica primero 3 × 2 (obteniendo 6), luego suma 5. Si los operadores tuvieran la misma prioridad, calcularía de izquierda a derecha: 5 + 3 = 8, luego 8 × 2 = 16. Pero no es así como funciona.

Aquí está la precedencia de mayor a menor para los operadores que has aprendido:

PrioridadOperadores
Más alta** (exponenciación)
Alta* / %
Baja+ -

Para anular el orden predeterminado, utilice paréntesis. Las operaciones dentro de los paréntesis siempre se evalúan primero:

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

Cuando tengas dudas, usa paréntesis para dejar claras tus intenciones. Esto hace que tu código sea más fácil de leer y previene resultados inesperados.

challenge icon

Desafío

Fácil

Lee tres números de la entrada: a, b y c.

Calcula e imprime el resultado de la siguiente expresión, usando 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

Hoja de referencia

PHP sigue las reglas de precedencia de operadores al evaluar expresiones con múltiples operadores:

PrioridadOperadores
Más alta** (exponentiation)
Alta* / %
Baja+ -
<?php
echo 5 + 3 * 2; // Outputs: 11 (multiplication first)
?>

Usa paréntesis para anular el orden predeterminado. Las operaciones dentro de los paréntesis se evalúan primero:

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

Pruébalo tú mismo

<?php
// Leer 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

// Imprimir el resultado
echo $result;
?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos