PHP 8.5: die Neuerungen, die im Alltag wirklich etwas ändern
Pipe-Operator, clone with, array_first und array_last: was PHP 8.5 bringt und wofür sich das Upgrade lohnt.
PHP 8.5 ist seit November 2025 draußen. Nach einem Jahr im Einsatz lässt sich gut sagen, welche Neuerungen im Projektalltag hängen bleiben und welche nur Release-Notes-Futter sind.
Der Pipe-Operator
Der neue Operator |> reicht das Ergebnis des linken Ausdrucks als Argument an die rechte Funktion weiter. Aus verschachtelten Aufrufen wird eine lesbare Kette:
$slug = $title
|> trim(...)
|> strtolower(...)
|> (fn ($s) => preg_replace('/[^a-z0-9]+/', '-', $s));
Das liest sich von oben nach unten statt von innen nach außen. In Codebasen mit vielen Transformationsschritten, etwa bei Import-Pipelines, macht das einen spürbaren Unterschied.
clone with
Bisher brauchte man für „kopiere das Objekt, aber ändere zwei Properties“ entweder einen Withers-Boilerplate oder public Properties. Jetzt geht es direkt:
$neu = clone($rechnung, ['status' => Status::Bezahlt]);
Gerade bei readonly Classes und Value Objects spart das eine Menge Schreibarbeit.
array_first und array_last
Klingt banal, beendet aber ein Dauerärgernis: den ersten oder letzten Wert eines Arrays holen, ohne den internen Zeiger anzufassen oder über array_key_first zu gehen.
#[\NoDiscard]
Funktionen können jetzt markieren, dass ihr Rückgabewert nicht ignoriert werden darf. Wer das Ergebnis wegwirft, bekommt eine Warnung. Für Methoden wie withHeader() auf immutablen Objekten genau richtig, denn das stille Wegwerfen solcher Rückgaben ist ein Klassiker unter den Bugs.
Lohnt sich das Upgrade?
Ja, und zwar früher als später. Die Migration von 8.4 auf 8.5 ist in den meisten Projekten unspektakulär, deutlich kleiner als seinerzeit 7.4 auf 8.x. Wer noch auf 7.4 oder 8.0 sitzt, hat ein anderes Problem: dort ist das Upgrade ein Projekt, kein Nachmittag. Genau solche Migrationen mache ich regelmäßig, zuletzt PHP 7.4 auf 8.2 zusammen mit einem Laravel-Upgrade beim TÜV Rheinland.