🚀 ¡PHP 8.5 ya disponible!
🚀 ¡PHP 8.5 ya disponible!
El 20 de noviembre de 2025 marca la llegada de PHP 8.5, una versión centrada en mejorar la experiencia diaria de los desarrolladores con nuevas herramientas para escribir código más limpio, depurar con más facilidad y optimizar el rendimiento. Aunque no trae cambios drásticos en la sintaxis, sí introduce mejoras muy útiles que agilizan tareas comunes y elevan la calidad del código.
🚀 Principales novedades de PHP 8.5
Aquí un resumen de las funciones más destacadas:
1. Operador Pipe (|>)
PHP 8.5 introduce el operador
|>, que permite encadenar funciones en una dirección de izquierda a derecha. Esto mejora la legibilidad frente a llamadas anidadas profundas.
2. clone() con modificación de propiedades (“clone with”)
Ahora es posible clonar objetos y, al mismo tiempo, modificar algunas propiedades gracias a una nueva sintaxis.
Esto es especialmente útil para clases
readonlyo patrones inmutables, ya que permite aplicar el llamado “with-er” pattern.
3. Atributo #[\NoDiscard]
Se introduce el atributo
#[\NoDiscard], que emite una advertencia si no se usa el valor de retorno de una función marcada con él.Esto ayuda a evitar errores sutiles cuando olvidamos manejar el resultado de llamadas importantes.
4. Expresiones constantes con closures y “first-class callables”
Ahora se pueden usar closures estáticas y callables de primera clase dentro de expresiones constantes, por ejemplo, como parámetros de atributos.
Esto abre posibilidades interesantes para metaprogramación y definición de configuraciones inmutables.
5. Nueva extensión URI
PHP 8.5 incluye una extensión URI integrada que permite analizar, normalizar y manipular URIs (URLs) de forma segura, siguiendo los estándares RFC 3986 y WHATWG URL.
Esta extensión se basa en bibliotecas externas, ofreciendo un API bastante robusto.
6. Nuevas funciones de array: array_first() y array_last()
array_first($arr): devuelve el primer valor del array, onullsi está vacío.array_last($arr): devuelve el último valor del array, onullsi no hay elementos.Estas funciones simplifican patrones comunes al trabajar con arrays, evitando hacks con
reset()oend().
7. Nuevas mejoras en manejo de errores y depuración
Ahora los errores fatales pueden mostrar un backtrace, lo que ayuda muchísimo al depurar problemas críticos.
Nuevas funciones:
get_error_handler()yget_exception_handler()permiten recuperar los manejadores configurados actualmente.Se añade una opción
fatal_error_backtracespara controlar esta funcionalidad.
8. Diagnóstico de configuración INI
El comando de CLI
php --ini=diffmuestra solo las directivas INI que han sido cambiadas respecto a los valores por defecto.Muy útil para depurar entornos o averiguar qué configuraciones se han personalizado en producción.
9. Nuevas utilidades con cURL
Función
curl_multi_get_handles()para obtener todos los handles que gestiona unCurlMultiHandle, facilitando el control de peticiones paralelas.También hay soporte para handles persistentes de cURL que pueden reutilizarse entre peticiones PHP, reduciendo la sobrecarga.
10. Otras mejoras sintácticas y atributos
Se puede marcar propiedades como
finalusando la promoción de propiedades en el constructor.Los atributos ahora pueden aplicarse a constantes.
Se introduce
#[\DelayedTargetValidation]para evitar errores de compilación cuando atributos se usan sobre blancos “no válidos”.También se añade
Closure::getCurrent()para ayudar en recursión con funciones anónimas.Se incluye la función
grapheme_levenshtein()para comparar cadenas respetando clusters de grapemas (muy útil para cadenas multibyte).Nuevos métodos en DOM:
Dom\Element::getElementsByClassName()yinsertAdjacentHTML().setcookie()ysetrawcookie()ahora soportan la opción “partitioned” para particionar cookies.Constante
PHP_BUILD_DATEcon la fecha de compilación de PHP.
11. Internacionalización mejorada (“i18n”)
Nueva función
locale_is_right_to_left()para detectar si un locale se lee de derecha a izquierda.En la clase
Locale(extensión intl), métodoisRightToLeft()para comprobar la dirección de escritura.Se incorpora
IntlListFormatterpara formatear listas (como “A, B y C”) según las convenciones del idioma.
🧭 ¿Por qué es interesante actualizar a PHP 8.5?
Mayor legibilidad: Con el operador pipe, el código se lee de manera más lineal y transparente.
Menos boilerplate: Las mejoras en clone, propiedades, atributos y arrays hacen que escribir clases inmutables o manejar datos sea más sencillo.
Depuración más potente: Los errores fatales con backtrace y la posibilidad de inspeccionar los manejadores actuales ayudan muchísimo a diagnosticar problemas.
Configuración más clara: Saber qué valores de INI has cambiado facilita el mantenimiento y la auditoría de entornos.
Rendimiento en red: Reutilizar conexiones cURL mejora la eficiencia.
Soporte para internacionalización: Si trabajas con aplicaciones multilenguaje, las nuevas funciones de locale son un plus.
📚 Más información, haciendo click aquí.
✉️ Puedes contactarnos haciendo click aquí.
NOTA: Próximamente estará disponible en nuestros servidores. Actualizaremos este post cuando esté disponible.