Un operador es algo a lo que usted entrega uno o más valores (o
expresiones, en jerga de programación) y produce otro valor (de modo que
la construcción misma se convierte en una expresión). Así que puede
pensar sobre las funciones o construcciones que devuelven un valor (como
print) como operadores, y en aquellas que no devuelven nada (como echo)
como cualquier otra cosa.
Existen tres tipos de operadores. En primer lugar se encuentra el
operador unario, el cual opera sobre un único valor, por ejemplo ! (el
operador de negación) o ++ (el operador de incremento). El segundo grupo
se conoce como operadores binarios; este grupo contiene la mayoría de
operadores que soporta PHP, y una lista se encuentra disponible más
adelante en la sección Precedencia de Operadores.
El tercer grupo consiste del operador ternario: ?:. Éste debe ser usado
para seleccionar entre dos expresiones, en base a una tercera, en lugar
de seleccionar dos sentencias o rutas de ejecución. Rodear las
expresiones ternarias con paréntesis es una muy buena idea.
Precedencia de Operadores
La precedencia de un operador indica qué tan "cerca" se agrupan dos
expresiones. Por ejemplo, en la expresión 1 + 5 * 3,
la respuesta es 16 y no 18, ya que
el operador de multiplicación ("*") tiene una mayor precedencia que el
operador de adición ("+"). Los paréntesis pueden ser usados para marcar
la precedencia, si resulta necesario. Por ejemplo: (1 + 5) *
3 evalúa a 18. Si la precedencia de los
operadores es la misma, se utiliza una asociación de izquierda a
derecha.
La siguiente tabla lista la precedencia de los operadores, con aquellos
de mayor precedencia listados al comienzo de la tabla. Los operadores en
la misma línea tienen la misma precedencia, en cuyo caso su
asociatividad decide el orden para evaluarlos.
La asociatividad de izquierda quiere decir que la expresión es evaluada
desde la izquierda a la derecha, la asociatividad de derecha quiere
decir lo contrario.
Use paréntesis para incrementar la legibilidad del código.
Note:
Aunque = tiene una menor precedencia que la mayoría
de los demás operadores, PHP aun permite expresiones similares a la
siguiente: if (!$a = foo()), en cuyo caso el valor
de retorno de foo() va a dar a
$a.