Home » PHP » Precedencia de los operadores de PHP

Precedencia de los operadores de PHP

Las expresiones que sólo poseen un operador no presentan problemas de precedencia. Los problemas comienzan cuando hay más de un operador. Si hay más de un operador y todos son del mismo tipo el problema es simple, la expresión se evalúa de izquierda a derecha. 
El problema es más complejo cuando además de haber más de un operador, éstos son de diferente tipo. Para resolver este problema se fija una precedencia para la resolución de los operadores.
Si tenemos una fórmula como esta:
 
$a = 3 - 3 * 5;
 
¿Cuál es el resultado? ¿0? ¿-12?
 
Para resolver esta situación se establece una precedencia de tratamiento de los operadores. Cada operador tiene una prioridad y si dos operadores tienen la misma prioridad, primero se resuelve el que esté más a la izquierda. 
En este ejemplo, como la multiplicación tiene mayor prioridad que la suma, el resultado será -12. Si queremos que el algoritmo quede más legible se pueden incluir paréntesis. Lo que está dentro de los paréntesis se resuelve primero, como si fuesen subexpresiones dentro de la expresión. 
Éste es el orden de precedencia de mayor a menor prioridad y se incluye también la columna de asociatividad que es determinante cuando se debe decidir qué operador se trata primero cuando existe igualdad en el orden de precedencia:
librophp005Tal como se puede observar, los operadores or y and tienen mayor prioridad que sus similares || y &&, lo que permite que esas operaciones tengan mayor o menor prioridad que las operaciones de asignación (elegiremos el que nos convenga a nuestro caso en particular).
izq sup der

Deja un comentario