> On Apr 5, 2021, at 11:40, André Hänsel <an...@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
signature.asc
Description: Message signed with OpenPGP