Re: Proposal: Implement FR #7930 (list() constructor reference assignment)
| From: | Matthew Leverton | Date: | Wed, 23 Oct 2013 18:03:18 +0000 |
| Subject: | Re: Proposal: Implement FR #7930 (list() constructor reference assignment) | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-69810@lists.php.net to get a copy of this message | ||
Seems like a natural fit to me.
Does it also work with the new foreach/list combo?
foreach ($array as list(&$a, $b)) {}
--
Matthew Leverton
On Wed, Oct 23, 2013 at 12:50 PM, Andrea Faulds <ajf@ajf.me> wrote:
> Good evening everyone,
>
> I have a simple suggestion for a feature addition, which I have already
> implemented. Over 13 years ago, someone suggested adding support for
> assigning by reference in list(), with the following syntax:
>
> $arr = [1, 2]
> list(&$a, $b) = $arr;
>
> Which would be equivalent to:
>
> $a = &$arr[0];
> $b = $arr[2];
>
> Their request is here: https://bugs.php.net/bug.php?id=6768
>
> It seemed like a useful feature, so I implemented it. The syntax is a little
> unusual, in that normally you do $a = &$b, and with list() you'd do
> list(&$a) = [$b], but I don't think there's a better syntax for it that
> allows you to set some variables as references, but not all.
>
> The patch is here:
>
> https://github.com/TazeTSchnitzel/php-src/compare/ListByReference
>
> If people think it is useful, I'll write an RFC soon.
>
> Thanks,
> --
> Andrea Faulds
> http://ajf.me/
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>