Re: [RFC] Explicit call-site send-by-ref syntax
| From: | Stephen Reay | Date: | Fri, 08 Dec 2017 04:41:46 +0000 |
| Subject: | Re: [RFC] Explicit call-site send-by-ref syntax | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-101264@lists.php.net to get a copy of this message | ||
> On 8 Dec 2017, at 08:54, "lists@rhsoft.net" <lists@rhsoft.net> wrote:
>
>
>
>> Am 08.12.2017 um 01:38 schrieb Björn Larsson:
>>> Den 2017-12-06 kl. 20:49, skrev Nikita Popov:
>>> Hi internals,
>>>
>>> I'd like propose optional support for explicitly marking by-reference
>>> argument passing at the call-site, in addition to the declaration-site:
>>>
>>> https://wiki.php.net/rfc/explicit_send_by_ref
>>>
>>> In short, while currently we have
>>>
>>> function byRef(&$ref) {...}
>>> byRef($var);
>>>
>>> this proposal would also allow
>>>
>>> function byRef(&$ref) {...}
>>> byRef(&$var);
>>>
>>> so that the use of by-reference passing is obvious without having to
>>> consult the function declaration.
>>>
>> I think this proposal has a good point about static analysers,
>> not just about human readability.
>> A good static analyser is very helpful for eg migration projects
>> and if this proposal benefits that, it's a plus. Also using same
>> syntax for references like in other parts of the language has a
>> value.
>> Now expressing the same thing in two different ways, with or
>> without & is confusing, so I think one needs to think about if
>> old syntax should be deprecated in 8.0
>
> to get this consistent that would also require change every line of code calling core functions
> like sort instead of sort($array) as sort($array)
>
> i doubt that the benefits could justify the BC break
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
I think Rowan's suggestion makes a lot of sense. There's zero bc break for existing code,
but new/updated code can get the benefits of being specific about how the parameter is used.
I know "references are the wrong tool for any job" is a belief held my some of the
community - I'm curious if out/inout parameters solve any of their concerns about references?
Cheers
Stephen