Novedades y mejoras en PHP 8.4

Fecha: 04/06/2025
PHP (Hypertext Preprocessor) es uno de los lenguajes de programación de código abierto más utilizados para el desarrollo de aplicaciones web. Este lenguaje ha evolucionado mucho a lo largo del tiempo (desde su creación en 1994), y actualmente, es sin duda uno de los más populares para construir aplicaciones y sitios webs dinámicos, como puede ser WordPress, PrestaShop y el resto de CMS más conocidos y utilizados en el mundo.

PHP 8.4

Tal y como sucede con los CMS o con cualquier tipo de aplicación o software, es imprescindible que este tipo de herramientas o lenguajes de programación vayan sacando actualizaciones de forma periódica, ya sea por motivos de seguridad, rendimiento o para añadir funciones nuevas y mejoradas a las que ya incluye.

En el caso de PHP, esto no sería la excepción, ya que este lenguaje implementa actualizaciones periódicas cada poco tiempo, no obstante, aproximadamente cada año, sí que se lanza una actualización importante que añade novedades interesantes, lo que implica que también queden ciertas funciones obsoletas de versiones anteriores.

Por ello, en este post, hablaremos sobre algunas de las novedades implementadas en la versión de PHP 8.4, lanzada en noviembre del año pasado, la cual dispondrá de soporte activo hasta diciembre de 2026.

Ventajas/novedades de la versión 8.4 de PHP


Índice del artículo
  • Ventajas/novedades de la versión de PHP 8.4 
  • Hooks para propiedades
  • Visibilidad asimétrica
  • Atributo #[\Deprecated]
  • Nuevas características de ext-dom y soporte para HTML5
  • API de objetos para BCMath
  • Nuevas funciones array_*()
  • Subclases específicas del driver PDO
  • New MyClass()->method() sin paréntesis
  • Deprecaciones y cambios en compatibilidad retroactiva
  • ¿La versión de PHP 8.4 afecta a WordPress?


Ventajas/novedades de la versión de PHP 8.4 


La versión de PHP 8.4  es la más reciente y una de las más estables actualmente, contiene bastantes novedades y optimizaciones con respecto a versiones anteriores, a continuación te indicaremos las más interesantes, no obstante, puedes ver todas las novedades al completo de cada versión de PHP desde su página oficial: https://www.php.net/

Hooks para propiedades


Los Property Hooks son una de las novedades más importantes de la versión 8.4 de PHP, ya que proporcionan un enfoque totalmente nuevo al manejo de los "setters" y los "getters", al permitir definir comportamientos personalizados para lectura y escritura (get y set) en las propiedades de nuestras clases.

Gracias a esto, en lugar de crear métodos "get" y "set" separados para cada una de las propiedades, podremos definir hooks directamente en la definición de la propiedad, lo que mejora la legibilidad y simplifica/reduce el código considerablemente.

Hooks para propiedades de la versión 8.4 de PHP

Si quieres conocer más sobre esta funcionalidad tan interesante (o ver más ejemplos) te recomendamos echarle un vistazo a la documentación oficial: https://www.php.net/manual/es/language.oop5.property-hooks.php

Visibilidad asimétrica


Con la versión de PHP 8.4, se añade la visibilidad asimétrica, lo que permite definir niveles de acceso independientes para la lectura y escritura de las propiedades de clase. Por ejemplo, puedes permitir que una propiedad sea pública para lectura pero privada para la escritura.

Visibilidad asimétrica de la versión 8.4 de PHP

Gracias a esto, puedes seguir ofreciendo acceso para lectura, pero protegiendo tus datos de modificaciones no deseadas. Además, con la visibilidad asimétrica se consigue mitigar la reiteración a la hora de declarar métodos "getter".

Atributo #[\Deprecated]


Con la versión de PHP 8.4 se añadió el nuevo atributo "#[\Deprecated]" para definir clases, métodos, funciones o propiedades como obsoletas, lo que permite indicar que no es aconsejable utilizar el elemento marcado con dicho atributo y que puede ser eliminado en versiones futuras.

Atributo #[\Deprecated] en la versión 8.4 de PHP

Nuevas características de ext-dom y soporte para HTML5


La extensión DOM se ha mejorado con la nueva versión de PHP, ahora incluye soporte para documentos HTML5, se han corregido varios errores de cumplimiento antiguos en el comportamiento de la funcionalidad DOM, además de añadir varias funciones que permiten trabajar de una forma mejorada con documentos XMLDocument o HTMLDocument.

características de ext-dom y soporte para HTML5 en PHP 8.4

Los documentos que utilizan la nueva API DOM pueden ser creados utilizando las clases "Dom\HTMLDocument y Dom\XMLDocument".

API de objetos para BCMath


La extensión BCMath de PHP ahora incluye la clase BcMath\Number, lo que facilita y mejora el trabajo con números de precisión arbitraria.

API de objetos para BCMath EN PHP 8.4

Esta nueva característica permitiría configurar un código más legible e intuitivo al realizar cálculos decimales.

Nuevas funciones array_*()


La versión 8.4 de PHP trae 4 nuevas funciones adicionales para trabajar con arrays, "array_find()", "array_find_key()", "array_any()" y "array_all()":

  • array_find(): Realiza una búsqueda del primer elemento de un array que cumpla una condición específica. Si no se encuentra ningún elemento que cumpla la condición, devuelve null.

  • array_find_key(): Comprueba la clave del primer elemento de un array que cumple una condición específica. Si no se encuentra ningún elemento que cumpla la condición, devuelve null.

  • array_any(): Comprueba si al menos un elemento de un array cumple una condición definida por una función de callback, devuelve false si ningún elemento cumple dicha condición.

  • array_all(): Verifica si todos los elementos de un array cumplen una condición específica, devuelve false si al menos un elemento no cumple la condición.


Nuevas funciones array_*() en PHP 8.4

En resumen, estas nuevas funciones nos permiten trabajar con arrays de una forma más efectiva, ya que simplifican ciertas tareas bastante comunes y consiguen que sean más legibles, facilitando la búsqueda y evaluación dentro de los mismos.

Subclases específicas del driver PDO


En caso de que utilices PDO para conectar bases de datos con ciertas aplicaciones, la versión de PHP 8.4 introduce nuevas subclases específicas (Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql y Pdo\Sqlite) que facilitan la programación con bases de datos, ya que permiten que el código use los mismos métodos independientemente del sistema de base de datos que se esté utilizando.

Subclases específicas del driver PDO en PHP 8.4

New MyClass()->method() sin paréntesis


En la versión 8.4 de PHP se introduce una mejora de sintaxis con la que se permite acceder directamente a métodos y propiedades de determinado objeto recién instanciados, sin necesidad de introducir la expresión "new" entre paréntesis:

New MyClass()->method() sin paréntesis

Con esto se mejora y se simplifica el código, ya que se elimina una característica que comúnmente provocaba confusiones.

Deprecaciones y cambios en compatibilidad retroactiva


Como con todas las versiones y actualizaciones, existen ciertas funciones que dejarán de ser compatibles o quedarán obsoletas con la versión 8.4 de PHP, entre ellas, se encuentran las siguientes:

  • Las extensiones IMAP, OCI8, PDO_OCI y pspell han sido desagregadas y movidas a PECL.

  • Los tipos de parámetros implícitamente nulos ahora están en desuso.

  • Usar ‘_’ como nombre de clase ahora está en desuso.

  • Elevar cero a la potencia de un número negativo ahora está en desuso.

  • Pasar un modo inválido a round() lanza un ValueError.

  • Las constantes de clase de las extensiones date, intl, pdo, reflection, spl, sqlite, xmlreader ahora tienen tipos.

  • La clase GMP ahora es final.

  • Los constantes MYSQLI_SET_CHARSET_DIR, MYSQLI_STMT_ATTR_PREFETCH_ROWS, MYSQLI_CURSOR_TYPE_FOR_UPDATE, MYSQLI_CURSOR_TYPE_SCROLLABLE, y MYSQLI_TYPE_INTERVAL han sido eliminadas.

  • Las funciones mysqli_ping(), mysqli_kill(), mysqli_refresh(), los métodos mysqli::ping(), mysqli::kill(), mysqli::refresh(), y los constantes MYSQLI_REFRESH_* están en desuso.

  • stream_bucket_make_writeable() y stream_bucket_new() ahora devuelven una instancia de StreamBucket en lugar de stdClass.

  • Cambio en el comportamiento de exit().

  • El constante E_STRICT está en desuso.


¿La versión de PHP 8.4 afecta a WordPress?


Hay que tener en cuenta que WordPress está construido con PHP, por lo que este tipo de actualizaciones le afectan directamente.

Por el momento, no está confirmada la compatibilidad 100% entre la versión 8.4 de PHP y la última versión de WordPress, a partir de la versión 6.7 de WordPress ya se añadió el soporte “beta” para la misma, lo que indica que podrías configurarla, pero que realmente está todavía en la fase de desarrollo beta, es decir, que aún no es estable para su uso en producción (al menos, en la fecha de publicación de este post).

versión 8.4 de PHP en WordPress

Por este motivo, seguramente sea recomendable configurar una versión que sea 100% estable con WordPress, por ejemplo, la 8.2.

En todo caso, y antes de configurar una nueva versión de PHP, siempre es necesario verificar que todos los elementos de tu web (plugins y tema) sean compatibles también con la misma. Esto es algo que normalmente puedes comprobar desde la propia información o changelog del elemento en cuestión.

Compatibilidad de plugins con PHP 8.4

Lo idóneo es ir revisando las compatibilidades de todos los elementos de tu web, no obstante, podrías probar a establecer directamente la versión PHP que desees, y posteriormente revisar si se produce algún tipo de error en la web, ya que es un cambio completamente reversible.

En caso de que algo no funcione como debería, tan solo tendrías que volver a la versión anterior (es importante que no realices ningún cambio en este proceso), y siempre que no hayas realizado ninguna modificación adicional, todo debería de funcionar como lo hacía previamente.

Si tienes un plan contratado con Raiola Networks y quieres modificar la versión PHP de tu sitio web, te recomendamos ver este otro post en el que explicamos cómo hacerlo fácilmente: https://raiolanetworks.com/blog/cambiar-version-php/
Andrés Gude
Andrés Gude

Andrés Gude forma parte del departamento de aplicaciones de Raiola Networks. Usuario de un ordenador desde la cuna, apasionado de la F1 y del D10S del fútbol, Leo Messi.

Artículos relacionados

Si te ha gustado este post, aquí tienes otros que pueden ser de tu interés. ¡No dejes de aprender!

Aún no tenemos comentarios en Novedades y mejoras en PHP 8.4

Deja una respuesta

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