Se ha lanzado PHP 8.4: resumen de los cambios clave

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Se ha lanzado PHP 8.4: qué ha cambiado y por qué es importante



La comunidad de desarrolladores ha recibido el esperado lanzamiento de PHP 8.4, una nueva versión principal de uno de los lenguajes de programación web más populares. La actualización trae una serie de mejoras significativas, incluyendo los tan esperados property hooks, la visibilidad asimétrica y una optimización sustancial del rendimiento. Analicemos los cambios clave que todo desarrollador PHP debería conocer.



1. Property Hooks (Ganchos de propiedades)

La novedad más destacada es la posibilidad de definir getters y setters directamente en la declaración de la propiedad de una clase sin necesidad de escribir métodos separados. Esto simplifica radicalmente el trabajo con campos calculados o que requieren validación.



class User{    public string $name {        set => $this->name = trim($value);        get => ucfirst($this->name);    }}


Antes, para esta lógica era necesario escribir métodos separados getName() y setName(). Los property hooks hacen que el código sea más limpio y legible.



2. Visibilidad asimétrica

Ahora es posible establecer diferentes niveles de acceso para la lectura y escritura de una propiedad. Por ejemplo, lectura pública pero escritura protegida:



class Post{    public private(set) string $title;}


Esto elimina la necesidad de crear getters y setters solo para controlar el acceso, manteniendo la encapsulación.



3. JIT mejorado y rendimiento

En PHP 8.4, el compilador JIT (Just-In-Time) ha sido significativamente rediseñado. Los desarrolladores del núcleo mejoraron la heurística de decisión de compilación y redujeron la sobrecarga en la ejecución de rutas de código calientes. Según pruebas preliminares, el aumento de rendimiento en benchmarks sintéticos oscila entre el 10% y el 25% en comparación con PHP 8.3.



  • Aceleración en la ejecución de bucles y funciones recursivas
  • Mejor manejo de arrays grandes
  • Reducción del consumo de memoria en modo JIT de hasta un 15%


4. Nueva sintaxis: desestructuración de arrays con tipos

Se ha añadido la posibilidad de especificar tipos al desestructurar arrays:



[$name, $age] = ['Juan', 30]; // era[ string $name, int $age ] = ['Juan', 30]; // ahora


Esto mejora el análisis estático y hace que el código sea autodocumentado.



5. Cambios en la biblioteca estándar

  • Nuevas funciones: array_find(), array_find_key(), array_any() y array_all() — para un trabajo más conciso con arrays.
  • Actualización de PCRE2: la biblioteca de expresiones regulares se ha actualizado a la versión 10.44, corrigiendo varios errores poco comunes.
  • Funciones obsoletas: se han declarado obsoletas session_set_cookie_params() (en favor de ini_set()) y varias funciones internas.


6. Estado de obsolescencia (Deprecations)

En PHP 8.4 se han marcado como obsoletas:

  • Cambiar el tipo de valor de retorno mediante #[\\ReturnTypeWillChange] — ahora se requiere una declaración explícita.
  • Llamar a isset() en no-arrays (por ejemplo

Recommended Libraries