€0.00 — free as in speechtonight's forecast: clear skies over production Cache: warm · Deploys: fair, 0% rollbacks expectedset by moonlight, shipped before dawn · deploy freely Page A2

The Daily Commit The Nightly Build

Dev news, typeset daily — PHP · AI · The Wider Stack

The developer's evening paper — PHP · AI · The Wider Stack

Mittwoch, 9. September 2026 Vol. I — No. 510 · MorgenausgabeSpätausgabe EN DE FR ES

PHP · News

PHP 8.5: Pipe-Operator beendet verschachtelte Aufrufe

Der neue Pipe-Operator in PHP 8.5 erlaubt verkettete Funktionsaufrufe in Ausführungsreihenfolge statt verschachtelt von innen nach außen.

kuratiert von Georg

Die Syntax kompiliert zu denselben Opcodes wie klassische Aufrufe und verursacht keine Laufzeitkosten. Funktionen mit mehreren Argumenten brauchen weiterhin Arrow-Function-Wrapper.

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.

slug.php
<?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.

Originalquelle lesen (Englisch) ↗

Artikel bewerten: 0

Leserforum

Noch keine Beiträge — eröffne die Debatte.

The Daily CommitThe Nightly Build — Page A1