Good evening,

So, I came back to this today. It appears to me that it’s actually impossible for me to implement this feature properly at the present moment, due to the parser directly emitting opcodes. This is a shame. Unfortunately, there’s really nothing I can do about it.

Hence, I hereby withdraw my RFC.

On 24 Oct 2013, at 23:14, Andrea Faulds wrote:

Good evening again,

Previously I wrote to this mailing list about my proposal to add reference assignment to list() with a new syntax ("[PHP-DEV] Proposal: Implement FR #7930 (list() constructor reference assignment)"). I have now opened an RFC:


In brief, this allows you to write this:

$array = [1, 2];
$a = $array[0];
$b = &$array[1];

Like this instead:

$array = [1, 2];
list($a, &$b) = $array;

Reference assignments with list() work just like normal assignments, and you can still skip variables, use nested list()s, and use list() in foreach as usual.

There is a patch with a passing test, however a memory leak bug was found (thanks Nikita!), and so the patch can't be considered complete or final yet. I'm something of a novice at debugging PHP code at the moment, so any help fixing that would be appreciated, but I will try to fix it when I have more time.

The patch is here: https://bugs.php.net/bug.php?id=6768

The RFC has been added to the list in Under Discussion.

Any thoughts, suggestions, etc. appreciated.

Andrea Faulds

PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
Andrea Faulds

Search Discussions

Discussion Posts


Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 2 of 2 | next ›
Discussion Overview
groupphp-internals @
postedOct 24, '13 at 10:14p
activeMay 15, '14 at 7:12p

1 user in discussion

Andrea Faulds: 2 posts



site design / logo © 2022 Grokbase