вт, 9 апр. 2024 г. в 19:41, Larry Garfield <la...@garfieldtech.com>:

> On Mon, Apr 8, 2024, at 6:08 AM, Valentin Udaltsov wrote:
> > Hello internals,
> >
> >
> >
> > I would like to propose a syntax change for PHP 8.4 that allows to
> > immediately access instantiated objects without wrapping the expression
> > into parentheses.
> >
> >
> >
> > This was requested and discussed several times, see:
> >
> > - https://externals.io/message/66197
> >
> > - https://bugs.php.net/bug.php?id=70549
> >
> > - https://externals.io/message/101811
> >
> > - https://externals.io/message/113953
> >
> >
> >
> > Here's what you will be able to write after this change:
> >
> > ```php
> >
> > class MyClass
> >
> > {
> >
> >     const CONSTANT = 'constant';
> >
> >     public static $staticProperty = 'staticProperty';
> >
> >     public static function staticMethod(): string { return
> 'staticMethod'; }
> >
> >     public $property = 'property';
> >
> >     public function method(): string { return 'method'; }
> >
> >     public function __invoke(): string { return '__invoke'; }
> >
> > }
> >
> >
> >
> > var_dump(
> >
> >     new MyClass()::CONSTANT,        // string(8)  "constant"
> >
> >     new MyClass()::$staticProperty, // string(14) "staticProperty"
> >
> >     new MyClass()::staticMethod(),  // string(12) "staticMethod"
> >
> >     new MyClass()->property,        // string(8)  "property"
> >
> >     new MyClass()->method(),        // string(6)  "method"
> >
> >     new MyClass()(),                // string(8)  "__invoke"
> >
> > );
> >
> > ```
> >
> >
> >
> > For more details see the RFC:
> https://wiki.php.net/rfc/new_without_parentheses
> >
> > Implementation: https://github.com/php/php-src/pull/13029
>
> I always thought there was some technical parser reason why this wasn't
> possible.  Maybe that was true in 5.x but isn't anymore?
>
> I cannot speak to the implementation, but I'm all for the change itself.
>
> --Larry Garfield
>

Does anyone have additional feedback? I'd like to start voting on Thursday,
April 25th.
I've also added a section on other syntax ideas that have been expressed on
Twitter and in the PR:
https://wiki.php.net/rfc/new_without_parentheses#other_syntax_ideas
-- 
Valentin

Reply via email to