Hi there,
I have a proposal for a shorthand notation of associative arrays borrowed from 
another language:
        :$foo
would be equivalent to
        'foo' => $foo
and would work with array, list or []

Motivation behind it, maybe someone else finds more good uses:

1) Emulating named parameters with associative arrays like
        html::img([ 'src' => $src, 'alt' => $alt ]);
   could be written as
        html::img([ :$src, :$alt ]);
   which encourages consistent naming of variables and parameters

2) Simplifying list destructuring with non-integer keys, example taking from 
http://php.net/manual/en/migration71.new-features.php#migration71.new-features.support-for-keys-in-list
        foreach ($data as ["id" => $id, "name" => $name]) {
   becomes
        foreach ($data as [ :$id, :$name ]) {
   which reduces redundancy.

I implemented a minimal patch (2 lines are added to the parser) to implement 
this which you can find at
        https://cschneid.com/php/php7_2/assoc_array_shorthand.patch

What do you think, is this worth an RFC? I hope I didn't miss an existing one 
:-)

Regards,
- Chris


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

Reply via email to