View Issue Details

IDProjectCategoryView StatusLast Update
0002363XdebugStep Debuggingpublic2025-12-04 14:50
Reporterderick Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Target Version3.5devFixed in Version3.5.0 
Summary0002363: Add better debugging support for PHP 8.5's pipes
Description

PHP 8.5 introduces pipes, with the following syntax:

<?php
$myString = "Hello World";
$result = $myString
    |> htmlentities(...)
    |> str_split(...)
    |> (fn($x) => array_map(strtoupper(...), $x))
    |> (fn($x) => array_filter($x, fn($v) => $v != 'O'))
    |> (fn($x) => join( ', ', $x));

echo $result, "\n";

Since https://github.com/php/php-src/commit/4d6dde595cda1a34683a050208ffd362fa6e2c43, PHP introduces EXT_STMT opcodes in between each state, with a reference to the TMP variable that holds the value that is sent to the next pipe stage.

Xdebug should expose this value as part of the stack frame.

TagsNo tags attached.
Operating System
PHP Version8.3.5-8.3.9

Activities