LosLos operadores son los ladrillos con los que construimos expresiones en cualquier lenguaje de programación. En PHP no son la excepción: permiten sumar o restar valores, comparar variables, concatenar cadenas o incluso ejecutar comandos del sistema. Conocer cada tipo de operador y sus matices te ayudará a escribir código más claro y eficiente.
1. Operadores aritméticos operadores son los ladrillos con los que construimos expresiones en cualquier lenguaje de programación. En PHP no son la excepción: permiten sumar o restar valores, comparar variables, concatenar cadenas o incluso ejecutar comandos del sistema. Conocer cada tipo de operador y sus matices te ayudará a escribir código más claro y eficiente.
1. Operadores aritméticos
Los operadores aritméticos se utilizan para realizar operaciones matemáticas sobre valores numéricos:
- Suma (
+
) y resta (-
):3 + 2
devuelve5
,7 - 4
devuelve3
. - Multiplicación (
*
) y división (/
):6 * 4
devuelve24
,8 / 2
devuelve4
. Ten en cuenta que la división con enteros en PHP 8 devuelve un flotante (7/2
produce3.5
). - Módulo (
%
): devuelve el resto de una división.10 % 3
devuelve1
. - Exponenciación (
**
): eleva un número a una potencia.2 ** 3
devuelve8
. $a = 10;
$b = 3;
$mod = $a % $b; // $mod contiene 1
$potencia = 2 ** 5; // 32
2. Operadores de asignación
Además del operador de asignación simple (=
), PHP ofrece operadores compuestos que combinan asignación con una operación aritmética o de cadena:
+=
,-=
,*=
,/=
,%=
y**=
: incrementan o decrementan la variable. Por ejemplo: $x = 5;
$x += 3; // ahora $x es 8
$x *= 2; // ahora $x es 16.=
, operador de concatenación: agrega una cadena al final de otra: $mensaje = «Hola»;
$mensaje .= » mundo»; // $mensaje es «Hola mundo»
3. Operadores de comparación
Comparan dos valores y devuelven un resultado booleano (“true” o “false”). Algunos de los más usados son:
- Igualdad
==
y desigualdad!=
: comparan solo el valor, no el tipo. «5» == 5 estrue
. - Identidad
===
y no identidad!==
: comparan valor y tipo. «5» === 5 esfalse
porque uno es cadena y el otro entero. - Mayor que
>
y menor que<
, así como>=
y<=
para mayor o igual y menor o igual. - Nave espacial (
<=>
): devuelve-1
si el primer operando es menor,0
si son iguales o1
si es mayor. Es útil para ordenar: $resultado = 3 <=> 5; // -1 porque 3 es menor que 5
4. Operadores de incremento y decremento
PHP soporta tanto incrementos y decrementos pre como post:
++$var
/$var++
: incrementan la variable en 1. La versión prefija incrementa antes de devolver el valor; la posfija devuelve el valor antiguo y luego incrementa.--$var
/$var--
: decrementan de manera similar. $a = 5;
$b = $a++; // $b es 5 y luego $a pasa a 6
$c = ++$a; // $a pasa a 7 y $c también es 7
5. Operadores lógicos
Son esenciales para controlar el flujo de los programas. Operan sobre valores booleanos:
- AND (
&&
yand
): devuelventrue
si ambos operandos son verdaderos. La versión de baja prioridad (and
) se evalúa después de las asignaciones. - OR (
||
yor
): devuelventrue
si al menos uno de los operandos es verdadero. Al igual queand
,or
tiene menor prioridad. - XOR (
xor
): devuelvetrue
si exactamente uno de los operandos es verdadero. - NOT (
!
): niega un valor booleano. $esMayor = ($edad >= 18) && $tieneDocumento;
$esGratis = ($usuario == «admin») || ($usuario == «editor»);
6. Operadores de cadena
La concatenación se realiza con el punto (.
). Para unir varias cadenas de manera eficiente, también puede usarse .=
, como vimos en los operadores de asignación.
$nombre = "Juan";
$apellido = "Pérez";
$completo = $nombre . " " . $apellido; // "Juan Pérez"
7. Operadores de arrays
Estos operadores trabajan sobre arrays:
- Unión (
+
): combina dos arrays, pero los elementos de la derecha no reemplazan a los de la izquierda si comparten claves. - Igualdad (
==
): devuelvetrue
si tienen las mismas parejas clave/valor, sin importar el orden. - Identidad (
===
): devuelvetrue
si tienen las mismas parejas clave/valor en el mismo orden y del mismo tipo. - Desigualdad (
!=
o<>
) y no identidad (!==
). $a = [«color» => «rojo», «valor» => 2];
$b = [«color» => «rojo», «valor» => 2, «extra» => 4];
$c = $a + $b; // $c tiene las claves de $a y añade la clave «extra» de $b
8. Operadores ternarios y de coalescencia nula
El operador ternario es una forma abreviada de una estructura condicional if
:
$edad = 20;
$mensaje = ($edad >= 18) ? "Eres mayor de edad" : "Eres menor de edad";
Desde PHP 7 existe una versión abreviada: ??
, denominada operador de coalescencia nula. Devuelve el operando de la izquierda si existe y no es null
; de lo contrario, devuelve el de la derecha. Es especialmente útil al trabajar con arrays o valores opcionales:
$nombre = $_GET["nombre"] ?? "Invitado";
9. Operador de control de errores y ejecución de comandos
- Control de errores (
@
): suprime cualquier mensaje de error generado por la expresión. Debe usarse con cautela, ya que puede ocultar problemas serios. @$resultado = 1 / 0; // no muestra el warning de división por cero - **Ejecutar comandos del sistema (
`)**: los backticks permiten ejecutar un comando de la línea de comandos. Por motivos de seguridad, es preferible utilizar funciones como
shell_exec()o
proc_open()` y siempre validar la entrada del usuario. $fecha =date
; // asigna la salida del comando ‘date’
10. Operadores bit a bit
Trabajan sobre la representación binaria de enteros y son útiles en algoritmos de bajo nivel, como manipulación de permisos o flags:
- AND (
&
): establece un bit a 1 sólo si ambos bits correspondientes son 1. - OR (
|
): establece un bit a 1 si alguno de los bits correspondientes es 1. - XOR (
^
): establece un bit a 1 si sólo uno de los bits es 1. - NOT (
~
): invierte cada bit. - Desplazamiento a la izquierda (
<<
) y a la derecha (>>
): mueven los bits de un número. $permisoLectura = 0b0100;
$permisoEscritura = 0b0010;
$permisos = $permisoLectura | $permisoEscritura; // 0b0110
$tieneLectura = ($permisos & 0b0100) !== 0; // true
11. Precedencia y asociatividad
Cuando combinas varios operadores, PHP necesita saber cuál evaluar primero. La precedencia determina la prioridad (por ejemplo, la multiplicación se evalúa antes que la suma) y la asociatividad define el orden en caso de igualdad de precedencia (izquierda a derecha o derecha a izquierda). Para evitar confusiones y mejorar la legibilidad, utiliza paréntesis.
$resultado = 3 + 4 * 2; // es 11 porque * tiene mayor prioridad que +
$resultado = (3 + 4) * 2; // es 14
Conclusión
PHP ofrece un abanico de operadores que van desde tareas básicas como sumar o concatenar hasta operaciones de bajo nivel con bits y ejecución de comandos. Dominar su sintaxis y entender su precedencia te permitirá escribir código más expresivo y menos propenso a errores. Siempre que tengas dudas sobre cómo se evaluará una expresión compleja, recurre a los paréntesis para dejar claro el orden de las operaciones.
Deja una respuesta