Re: RFC proposal: Spread Operator for Array Destructuring Assignment

From: Date: Wed, 03 Jun 2020 09:46:00 +0000
Subject: Re: RFC proposal: Spread Operator for Array Destructuring Assignment
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-110343@lists.php.net to get a copy of this message
On Wed, Jun 3, 2020 at 11:37 AM paul laffitte <paul.laffitte@epitech.eu> wrote: > Hello, > > I would like to submit an RFC proposal about array destructuring > assignment. An RFC has already been implemented in php 7.1 about this ( > https://wiki.php.net/rfc/short_list_syntax), but I feel like > something is > missing for this one. Indeed, another RFC about "Spread Operator in Array > Expression" has been implemented in php 7.4 ( > https://wiki.php.net/rfc/spread_operator_for_array). The first > RFC allows > to destructure an array and assign several variable from it, the other one > allows to build an array by "spreading another array inside of it". It > would be so nice if we could combine both feature to provide a spread > operator for array destructuring assignment. > > Here is a short example to demonstrate it: > > $foobar = [1, 2, 3, 4, 5]; > [$foo, ...$bar] = $foobar; > > So here $foo = 1 and $bar = [2, 3, 4, 5]; > > During my developer journey, I've encountered several cases where this > could be very useful and make my code shorter. > To give a tl;dr of existing discussions on the topic: $foobar = [2 => 2, 1 => 1, 0 => 0]; [$foo, ...$bar] = $foobar; // What is the result? Introducing this feature is primarily a matter of coming up with a satisfactory answer to the above question. (There is an existing constraint that $foo must be equal to 0 in this case, not 2.) Regards, Nikita

« previous php.internals (#110343) next »