PHP 8.5 führt den Pipe-Operator `|>` ein, der das Ergebnis des linken Ausdrucks als erstes Argument an das Callable rechts weitergibt. Das klassische Beispiel ist die Eingabebereinigung: Statt `strtolower(str_replace(..., trim($input)))` zu verschachteln, was in umgekehrter Ausführungsreihenfolge gelesen wird, schreibt man die Kette jetzt von links nach rechts.
<?php
function makeSlug(string $input): string
{
return $input
|> trim(...)
|> (fn($s) => str_replace(' ', '-', $s))
|> strtolower(...)
|> (fn($s) => preg_replace('/[^a-z0-9-]+/', '', $s));
}Der Operator verlangt rechts ein Callable, keinen sofortigen Funktionsaufruf. Für Funktionen mit einem Argument nutzt man die First-Class-Callable-Syntax aus PHP 8.1: `trim(...)` erzeugt eine Closure, während `trim()` sofort ausführen und scheitern würde. Die kompilierten Opcodes entsprechen denen verschachtelter Aufrufe, es entsteht kein Laufzeit-Overhead.
Funktionen mit mehreren Argumenten müssen in Arrow-Functions verpackt werden, die zwingend Klammern brauchen, um Parse-Fehler zu vermeiden. Der Autor nennt diese Ausführlichkeit die häufigste Beschwerde; PHP 8.6 soll Partial Function Application bringen, um das zu lösen.
Instanzmethoden lassen sich nicht direkt pipen und brauchen Arrow-Function-Wrapper, statische Methoden funktionieren mit First-Class-Callable-Syntax. Void-Funktionen wie `var_dump` brechen die Kette, indem sie null an den nächsten Schritt weitergeben. Die Syntax ist nicht abwärtskompatibel zu PHP 8.4 oder älter. PhpStorm und VS Code mit Intelephense unterstützen sie bereits.




Kommentare
Noch keine Kommentare — schreib den ersten.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Nichts angekommen? Wirf einen Blick in den Spam-Ordner — und markiere die Mail dort als „Kein Spam“, dann landet sie künftig direkt im Postfach.