PHP 8.6 está previsto para el 19 de noviembre de 2026 y se centra en la ergonomía del desarrollador: nuevas herramientas de programación funcional, pequeñas correcciones del lenguaje, mejor reflexión y una larga lista de deprecaciones que preparan futuras versiones mayores.

La característica estrella es la aplicación parcial de funciones (PFA). Con el marcador ?, cualquier función puede convertirse en un callable parcialmente aplicado: $makeSlug = str_replace(' ', '-', ?); seguido de $makeSlug('Hello World') produce "Hello-World". La PFA se combina con el operador pipe, por ejemplo 'Hello World' |> str_replace(' ', '-', ?) |> strtolower(...) con resultado "hello-world".

Las propiedades readonly ahora pueden tener valores por defecto, p. ej. public readonly string $name = '2026-01-01_create_books_table'; — antes imposible. Resulta especialmente útil junto con los property hooks introducidos en PHP 8.4, donde los valores inmutables por defecto pasan a formar parte del contrato de una interfaz.

Una nueva API de polling de bajo nivel mejora los internos de PHP como PHP-FPM, la gestión de señales y Zend Thread Safety (ZTS), y también está disponible para el código de usuario. Bibliotecas como ReactPHP y Amp pueden usarla en lugar de stream_select(). La API no introduce async/await ni bucle de eventos; es una mejor abstracción sobre mecanismos del sistema operativo como epoll y WSAPoll, mejorando la escalabilidad de aplicaciones de alta concurrencia.

Por fin se integra el ayudante clamp(): clamp($value, 0, 100) sustituye a max(0, min(100, $value)). clamp(101, 0, 100) devuelve 100, clamp(-5, 0, 100) devuelve 0. La función no se limita a números: también funciona con cadenas, objetos DateTime y cualquier valor comparable.

La reflexión gana los métodos isReadable() y isWriteable(), que permiten a los frameworks determinar la accesibilidad de las propiedades según el ámbito — relevante para propiedades readonly, property hooks y setters privados. Los doc comments pueden colocarse ahora directamente junto a los parámetros, y ReflectionParameter::getDocComment() los expone. Se añade un enum integrado SortDirection con los casos Ascending y Descending; las funciones de ordenación del núcleo aún no lo admiten, pero las bibliotecas pueden adoptarlo de inmediato.

Los valores de seguridad de sesión por defecto se endurecen: session.use_strict_mode = 1, session.cookie_httponly = 1 y session.cookie_samesite = Lax. Esto protege las instalaciones nuevas frente a fijación de sesión, acceso de JavaScript a las cookies y uso cruzado no deseado; las aplicaciones que dependen de POST entre sitios o de acceso del cliente a los identificadores de sesión pueden necesitar ajustar la configuración. Los enums ahora admiten __debugInfo() para personalizar la salida de var_dump().

Deprecaciones destacadas: return dentro de un bloque finally; los identificadores let, is, namespace, readonly (como nombre de función) y _ (reservados para futuras funcionalidades); los alias antiguos is_double(), is_integer(), is_long() y doubleval() en favor de is_float(), is_int() y floatval(); establecer propiedades en objetos no relacionados e invocar métodos estáticos mediante instancias por reflexión; spl_classes(), spl_object_hash(), los métodos CSV de SplFileObject, mysqli::stmt_init() y mysqli_get_charset(); y devolver valores desde constructores o destructores.