The pipe operator lets you read a chain of calls from left to right, but when you save the result you still write $result = at the start, so your eyes jump back to the front of the line. This RFC from Vadim Dvorovenko adds a way to put the variable at the end instead.
Before and after
// Current syntax $result = "Hello World" |> strlen(...); // New syntax "Hello World" |> strlen(...) |> = $result; // Or "Hello World" |> strlen(...) |>= $result;
expr |> = $variable does the same thing as $variable = expr. The RFC says it should compile to exactly the same code, so it won't be any slower.
It fits naturally at the end of a long pipe chain:
"Hello World" |> htmlentities(...) |> str_split(...) |> (fn($x) => array_map(strtoupper(...), $x)) |> = $result;
It works with the kinds of assignment you already use, including references, list() and [$a, $b] destructuring, and appending to an array with $arr[].
Why this syntax
The RFC considered other spellings, like =|>, |=> and :=, and picked |> = because it reuses tokens PHP already has. You read the pipe first, which points left to right, and then the = tells you the step is an assignment. You can write it with or without the space.
It takes the pipe operator's precedence, which is higher than normal assignment. That means $a = 42 |> = $b; sets $b first and then $a.
The RFC is one of a set of proposals from the same author to extend the pipe operator, alongside "pipe to return" and "pipe to throw." A separate RFC, pipe_assignment_operator, wants to use |>= for something else.
What it means for existing code
Nothing breaks, because |> = is a syntax error today. Tools that parse PHP code, like IDEs and static analyzers, would need to learn the new syntax. Future work could add left-to-right versions of +=, .=, ??= and the other compound assignment operators.
Where it stands
It's under discussion on the internals mailing list. The RFC was first posted on July 19, 2026, and there's no vote yet. It names PHP 8.6 as its target.