Sorry for the confusion, I did not mean a parser conflict. I meant more that a single missing comma silently turns one valid program into another:
$b = 5; $arr = [$a =$b]; // today: assigns 5 to $a, $arr is [0 => 5] $arr = [$a, =$b]; // with the RFC: $arr is [0 => $a, 'b' => 5] Cheers. On Wed, 30 Sept 2026 at 08:43, Weilin Du <[email protected]> wrote: > > Hi all, > > I am goiing to reply to the thread with this single email. > > Firstly assignment expressions works well in this context. > The first token before `=` of `[$x = $y]` is different to `[$x, =$y]`. > Hence it will never conflict. > > Secondly for compact and extract functions. I was aware. > The different is > > a. They can't mix the shorthand with explicit keys: > ``` > $user = ['id' => 1, =$name, =$age]; > ``` > b. extract overwrite vars with the same name. But in this context > we can declare the var name to be written > ``` > [=$name] = $row > ``` > c. They don't work in foreach loop. > > Thirdly to prove its usefulness. Well, I'd say this works well with > my experience esp in returning arrays for functions. Because in my > code base, the local var's name could be the same to its key's name > and if some of it don't we just exlicitly state it there. > ``` > return ['x' => $point_x, =$y, =$z]; > ``` > > If you want me to prove this pattern in the code base. It's hard to > give out the overall statistics but I can provide some usage in famous > php project I see [1][2][3][4] > > Thus, I am not convinced. This feels useful in my experience. But I know > different devs have various taste to pl design and I am one of those perl > fan when it comes to this syntax. And I can see why some may feel bad in > it. > > I will leave the DTO stuff after I done the implementation. However, it feels > like I can already withdraw this RFC given the state of current discussion. > > Thanks for ideas anyways :) > > BR, > Weilin Du > > [1]: > https://github.com/composer/composer/blob/d25ce76a0624857740fe238e0b63ac09e82bbd8f/src/Composer/Command/RunScriptCommand.php#L181 > [2]: > https://github.com/laravel/framework/blob/6070a6d7e9804a490b12cb889173fbb926b8e3c8/src/Illuminate/Cache/DatabaseStore.php#L225 > [3]: > https://github.com/sebastianbergmann/phpunit/blob/027d1eb8cac21f6c9b9427ea9437d61785489fc4/src/TextUI/Configuration/SourceMapper.php#L96 > [4]: > https://github.com/symfony/http-foundation/blob/1c588354b1d2c94ed588edc33914bbf2978cd3ce/FileBag.php#L116
