Forgot something in the previous post...

On Fri, Jan 26, 2018 at 12:16 PM, Christian Schneider <cschn...@cschneid.com
> wrote:

> 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
>

The most similar extant feature to this is compact, but it's not as compact
as this syntax.

$src = 'my.jpg';
$alt = 'My alt';
html::img(compact($src, $alt));

will accomplish the same thing since compact does the reverse of extract -
it pulls the specified variables from the local scope and puts them into an
associative array.

Reply via email to