> On 8 Dec 2017, at 08:54, "li...@rhsoft.net" <li...@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 -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php