Operadores

En las tablas que se muestran a continuación se resumen los operadores que podremos utilizar en nuestro código PHP. Como se puede comprobar, PHP utiliza para los operadores una sintaxis muy parecida a la de C, con alguna particularidad, como por ejemplo el operador _idéntico_, que devuelve _true _ no solo si el valor de las dos variables implicadas es el mismo, sino que además si el tipo también lo es.

Operadores aritméticos
Operador Nombre Ejemplo
+ Suma $a + $b
- Resta $a - $b
* Producto $a * $b
/ División $a / $b
% Módulo $a % $b
Operadores de incremento/decremento
Ejemplo Nombre Efecto
++$a Pre-incremento Incrementa $a en uno, y luego devuelve $a
$a++ Post-incremento Devuelve $a, y luego incrementa $a en uno
--$a Pre-decremento Decrementa $a en uno, y luego devuelve $a
$a-- Post-decremento Devuelve $a, y luego decrementa $a en uno
Operadores binarios
Ejemplo Nombre Efecto
$a & $b Y Los bits que estén activos tanto en $a como en $b son activados
$a | $b O Los bits que estén activos en $a o en $b son activados
$a ^ $b O exclusivo (Xor) Los bits que estén activos en $a o en $b, pero no en ambos,son activados
~$a No Los bits que estén activos en $a son desactivados y viceversa
$a << $b Desplazamiento a la izquierda Desplaza los bits de $a un total de $b pasos a la izquierda (cada paso a la izquierda es equivalente a multiplicar por dos)
$a >> $b Desplazamiento a la derecha Desplaza los bits de $a un total de $b pasos a la derecha (cada paso a la derecha es equivalente a dividir entre dos)
Operadores lógicos. Existen dos versiones de los operadores Y y O porque tienen distinta precedencia (ver más adelante)
Ejemplo Nombre Efecto
$a and $b Y true si tanto $a como $b son true
$a or $b O true si $a o $b son true
$a xor $b O exclusivo (Xor) true si $a o $b son true, pero no ambos
!$a No true si $a no es true
$a && $b Y true si tanto $a como $b son true
$a || $b O true si $a o $b son true
Operadores de comparación
Ejemplo Nombre Efecto
$a == $b Igual true si $a es igual a $b
$a === $b Idéntico true si $a es igual a $b y además son del mismo tipo
$a != $b Diferente true si $a no es igual a $b
$a <> $b Diferente true si $a no es igual a $b
$a !== $b No idéntico true si $a no es igual a $b, o si no son del mismo tipo
$a < $b Menor que true si $a es estrictamente menor que $b
$a > $b Mayor que true si $a es estrictamente mayor que $b
$a <= $b Menor o igual que true si $a es menor o igual que $b
$a >= $b Mayor o igual que true si $a es mayor o igual que $b

Un operador adicional que también nos encontramos en el lenguaje C es el operador condicional ?, que utiliza la siguiente sintaxis:

(expresion1) ? (expresion2) : (expresion3)

El significado de esta sentencia es el siguiente: se evalúa la expresión _expresion1_, evaluándose _expresion2_ a continuación si el resultado fue _true_, o evaluándose _expresion3_ en caso contrario.

Un operador especial es el operador de control de errores, representado por @. Dicho operador, si es colocado al principio de una expresión, llamada a función, sentencia _include()_, etc., hace que se ignore cualquier error producido en esa operación:

$a = @(57/0);

Es totalmente desaconsejable utilizarlo en la definición de funciones o clases, o en instrucciones del tipo _if_, _foreach_, etc., ya que puede ocultar posibles causas de error en el script.
En el caso en el que tuviéramos habilitado el parámetro _track_errors_ en el fichero de configuración _php.ini_, PHP almacenará el último mensaje de error en la variable _$php_errormsg_ (esta variable se sobrescribe con cada error nuevo).

Un dato a tener en cuenta a la hora de combinar operadores para construir expresiones es la **precedencia** de los operadores, es decir, el orden en el que se irán aplicando los operadores para evaluar la expresión y obtener el resultado final.
La siguiente tabla muestra la precedencia de los operadores en PHP, desde los de mayor precedencia (los que se aplicarán antes) a los de menor. Podremos cambiar el orden de precedencia de los operadores utilizando los paréntesis, como en cualquier otro lenguaje de programación. La tabla también muestra la asociatividad de los operadores, es decir, el orden en el que se procesarán los operadores de la misma precedencia que encontremos en una expresión.

Precedencia y asociatividad de los operadores en PHP
Asociatividad Precedencia
No asociativo new
Derecha [
Derecha ! ~ ++ -- (int) (float) (string) (array) (object) @
Izquierda * / %
Izquierda + -
Izquierda << >>
No asociativos < <= > >=
No asociativos == != === !==
Izquierda &
Izquierda ^
Izquierda |
Izquierda &&
Izquierda ||
Izquierda ? :
Derecha = += -= *= /= %= &= |= ˆ= <<= >>=
Derecha print
Izquierda and
Izquierda or
Izquierda xor
Izquierda ,

results matching ""

    No results matching ""