On Mon, Mar 16, 2020 at 9:10 AM Matthew Brown <matthewmatt...@gmail.com> wrote: > I love the idea! Thanks Matthew!
> The syntax for new objects looks a little verbose – would it be possible to > use > > $foo = new Foo()[ > property1 = "hello", > property2 = 5, > ]; The short answer: I don't think so. This is not possible (though it's arguably 'nicer'): new Foo()->doSomething(); // syntax error, unexpected '->' Not sure why, but it's necessary to wrap the instantiation in brackets: (new Foo())->doSomething(); // Ok If someone can explain why, it would be enlightening! Furthermore, dropping the arrow would create conflicting syntax with array access: $foo[1]; // Array access, give me the element with index 1, can be used on objects as well $foo[a = 1]; // Property assignment... ??? I'll update the RFC to reflect your proposal. Thank you, Jakob -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php