Re: Raising the precedence of the new operator

From: Date: Mon, 05 Apr 2021 16:47:26 +0000
Subject: Re: Raising the precedence of the new operator
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-113954@lists.php.net to get a copy of this message
> On Apr 5, 2021, at 11:40, André Hänsel <andre@webkr.de> wrote:
> 
> I was wondering... PHP is the only language I know of where you have to
> write (new Foo())->bar() instead of
> new Foo()->bar(). This is particularly apparent with the builder pattern:
> 
> $developer->drink((new Coffee())->withCream()->withSugar());
> $logger->log((new LogMessage())->withMessage('Coffee was drunk'));
> 
> Since new Foo()->bar() cannot (and probably should not) be used to
> "dynamically instantiate a new thing of the class
> name returned by function Foo()", it seems like it would be no problem to
> change the precedence rules so that
> new Foo()->bar() means "instantiate a new Foo and call bar() on it".
> 
> It's currently a syntax error, so allowing it would be automatically
> compatible.
> 
> Has this ever been discussed before?


Mike Schinkel and I recently discussed this off-list. Mike, now’s your
time to chime in with your ideas on this. :-)

My $0.02 is that this is unnecessary, but I can see how others might
want it to avoid parenthesis soup.

Cheers,
Ben


Attachment: [application/pgp-signature] Message signed with OpenPGP signature.asc

Thread (14 messages)

« previous php.internals (#113954) next »