Re: Re: [RFC] [PHP 6] Uniform Variable Syntax

From: Date: Wed, 02 Jul 2014 16:25:25 +0000
Subject: Re: Re: [RFC] [PHP 6] Uniform Variable Syntax
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-75169@lists.php.net to get a copy of this message
On Wed, Jul 2, 2014 at 6:04 PM, Lazare Inepologlou <linepogl@gmail.com> wrote: > > 2014-07-02 17:51 GMT+02:00 Nikita Popov <nikita.ppv@gmail.com>: > > On Mon, Jun 9, 2014 at 3:33 PM, Nikita Popov <nikita.ppv@gmail.com> wrote: >> >> > Hi internals! >> > >> > I have created a proposal for a more consistent and complete variable >> > syntax for PHP 6: >> > >> > https://wiki.php.net/rfc/uniform_variable_syntax >> > >> > The RFC is targeted at PHP 6 because it breaks compatibility for some >> > rarely used variable-variable constructs. >> > >> >> Any more feedback on this? Otherwise I'll start the vote sometime soon :) >> >> > Yes, in the RFC, you mention that this will be possible: > > ($obj->closure)() > > While this is very welcome, I was wandering if we could skip the extra > parenthesis, like this: > > $obj->closure() > We could skip the extra parenthesis, but that would require changing the meaning of method calls. This discussion turns up every now and then, one of the more recent ones being http://markmail.org/message/3zi53txadno6xrqa. A key problem was always that supporting this would break BC. However that BC break may be acceptable for PHP 6, so the it might be worthwhile to reconsider the previous decisions regarding this issue. However this is not related to variable syntax (it is a question of method lookup semantics), so I would suggest opening a new discussion thread for this (and/or write an RFC for it). > Likewise, this would also be nice: > > new ClassName->foo() > This is problematic because the following would be ambiguous: new $className->foo() // could be (_current_ behavior) new ($className->foo)() // or (new $className)->foo() Of course we could resolve the ambiguity (towards the _latter_ interpretation) or special-case the plain-classname case. Both options do not seem very appealing to me. Imho it's better to keep the explicit syntax. Nikita

« previous php.internals (#75169) next »