The Daily Commit · Ressort-Ausgabe Titelseite PHP AI Dev EN DE FR ES

The Php Times

News — Ökosystem

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.

MEDIUM · PHP, 4. September 2026 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.

← Ökosystem — Page B1

"All the Code That's Fit to Ship" · The Daily Commit · Bildschirm-Ausgabe · Impressum · Datenschutz