Re: [RFC] Explicit call-site send-by-ref syntax

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

« previous php.internals (#101264) next »