Guía completa de operadores en PHP

Ilustración abstracta de operadores PHP

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 devuelve 5, 7 - 4 devuelve 3.
  • Multiplicación (*) y división (/): 6 * 4 devuelve 24, 8 / 2 devuelve 4. Ten en cuenta que la división con enteros en PHP 8 devuelve un flotante (7/2 produce 3.5).
  • Módulo (%): devuelve el resto de una división. 10 % 3 devuelve 1.
  • Exponenciación (**): eleva un número a una potencia. 2 ** 3 devuelve 8. $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 es true.
  • Identidad === y no identidad !==: comparan valor y tipo. «5» === 5 es false 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 (&lt;=>): devuelve -1 si el primer operando es menor, 0 si son iguales o 1 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 (&amp;&amp; y and): devuelven true si ambos operandos son verdaderos. La versión de baja prioridad (and) se evalúa después de las asignaciones.
  • OR (|| y or): devuelven true si al menos uno de los operandos es verdadero. Al igual que and, or tiene menor prioridad.
  • XOR (xor): devuelve true 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 (==): devuelve true si tienen las mismas parejas clave/valor, sin importar el orden.
  • Identidad (===): devuelve true si tienen las mismas parejas clave/valor en el mismo orden y del mismo tipo.
  • Desigualdad (!= o &lt;>) 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 comoshell_exec()oproc_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 (&amp;): 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 (&lt;&lt;) 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.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *