PHP 8.6 soll am 19. November 2026 erscheinen und konzentriert sich auf Entwickler-Ergonomie: neue Werkzeuge für funktionale Programmierung, kleine Sprachkorrekturen, bessere Reflection und eine lange Liste von Deprecations zur Vorbereitung künftiger Major-Versionen.

Das Kernfeature ist Partial Function Application (PFA). Mit dem ?-Platzhalter lässt sich jede Funktion teilweise anwenden: $makeSlug = str_replace(' ', '-', ?); gefolgt von $makeSlug('Hello World') ergibt "Hello-World". PFA kombiniert sich mit dem Pipe-Operator, etwa 'Hello World' |> str_replace(' ', '-', ?) |> strtolower(...) mit dem Ergebnis "hello-world".

Readonly-Properties können nun Standardwerte tragen, z. B. public readonly string $name = '2026-01-01_create_books_table'; — bislang unmöglich. Besonders nützlich ist das zusammen mit den in PHP 8.4 eingeführten Property Hooks, bei denen immutable Defaults Teil eines Interface-Vertrags werden.

Eine neue Low-Level-Polling-API verbessert PHP-Interna wie PHP-FPM, Signalverarbeitung und Zend Thread Safety (ZTS) und steht auch Userland-Code zur Verfügung. Bibliotheken wie ReactPHP und Amp können sie statt stream_select() nutzen. Die API führt bewusst weder async/await noch einen Event-Loop ein; sie ist eine bessere Abstraktion über OS-Mechanismen wie epoll und WSAPoll und verbessert die Skalierbarkeit hochgradig nebenläufiger Anwendungen.

Der lange gewünschte clamp()-Helfer ist eingebaut: clamp($value, 0, 100) ersetzt max(0, min(100, $value)). clamp(101, 0, 100) liefert 100, clamp(-5, 0, 100) liefert 0. Die Funktion funktioniert nicht nur mit Zahlen, sondern auch mit Strings, DateTime-Objekten und jedem vergleichbaren Wert.

Reflection erhält die Methoden isReadable() und isWriteable(), mit denen Frameworks die Property-Zugänglichkeit je nach Scope prüfen können — relevant für readonly-Properties, Property Hooks und private Setter. Doc-Kommentare können jetzt direkt an Parametern stehen; ReflectionParameter::getDocComment() macht sie zugänglich. Neu ist außerdem das eingebaute Enum SortDirection mit den Fällen Ascending und Descending; die Core-Sortierfunktionen unterstützen es noch nicht, Bibliotheken können es aber sofort übernehmen.

Die Session-Sicherheitsdefaults werden verschärft: session.use_strict_mode = 1, session.cookie_httponly = 1 und session.cookie_samesite = Lax. Das härtet Neuinstallationen gegen Session-Fixation, JavaScript-Cookie-Zugriff und unbeabsichtigte Cross-Site-Cookie-Nutzung; Anwendungen, die auf Cross-Site-POSTs oder clientseitigen Zugriff auf Session-IDs angewiesen sind, müssen eventuell ihre Konfiguration anpassen. Enums unterstützen nun __debugInfo() zur Anpassung der var_dump()-Ausgabe.

Wichtige Deprecations: return aus einem finally-Block; die Bezeichner let, is, namespace, readonly (als Funktionsname) und _ (für künftige Features reserviert); die Alt-Aliase is_double(), is_integer(), is_long() und doubleval() zugunsten von is_float(), is_int() und floatval(); das Setzen von Properties auf fremden Objekten und der Aufruf statischer Methoden über Instanzen per Reflection; spl_classes(), spl_object_hash(), die CSV-Methoden von SplFileObject, mysqli::stmt_init() und mysqli_get_charset(); sowie Rückgabewerte aus Konstruktoren und Destruktoren.