Hey Michał, Personally, I think instead of making `declare(strict_types=1);` to look more like a constant, we should make it look more like a function.
Since it seems that the named parameters RFC is going to be accepted, I think allowing for alternative `declare(strict_types: 1);` syntax would make much more sense. Best regards, Benas On Mon, Jul 13, 2020, 2:08 PM Michał Marcin Brzuchalski < michal.brzuchal...@gmail.com> wrote: > Hi Nikita, > > pon., 13 lip 2020 o 12:41 Nikita Popov <nikita....@gmail.com> napisał(a): > > > On Sun, Jul 5, 2020 at 9:36 AM Michał Marcin Brzuchalski < > > michal.brzuchal...@gmail.com> wrote: > > > >> Hi internals, > >> > >> I realise we're tight to the deadline but from my calculations, > >> this RFC should fit with 2w discussion and 2w voting before feature > >> freeze. > >> > >> The proposal is to allow two statements to skip parentheses so they > don't > >> look like expressions. > >> This goes to `declare` and `__halt_compiler`. > >> Changes have already been implemented and respective PR's are linked to > >> the > >> RFC. > >> > >> You can find the RFC at > >> https://wiki.php.net/rfc/language-constructs-syntax-changes > >> > >> There is no BC break! > >> Proposed changes only allow certain constructs to be considered valid. > >> > > > > I don't think introducing alternative syntax for declare and > halt_compiler > > is a good idea. It introduces two ways to write the same thing, without > > much benefit I can see. > > > > Your stated goal is to make it clearer that these aren't functions, but > > language constructs. I'm not sure your change helps that much: While > > "__halt_compiler()" looks like a function call, "__halt_compiler" looks > > like a constant lookup. For the declare syntax, "declare(a = 1)" is > already > > illegal syntax for functions, even with the parentheses. > > > > I can agree with "__halt_compiler;" similar to constant lookup, which > indeed does not mate it more clear. > > Regarding the second syntax for "declare" what I wanted to achieve is > reduce the number of different syntaxes and we do have quite a few in PHP. > I've noticed that the "declare" syntax is quite similar to the const > declare if you simply remove parentheses, > which therefore IMO increases readability, consider this example: > > declare strict_types = 1; > const GEAR_LIMIT = 5; > > From parser perspective, these both use const_list and only differ by a > first keyword and looks similar and present the same syntax construct. > Which currently is not true and they're both presented as a different > syntax. > > By introducing an alternative syntax I planned to deprecate the old as soon > as we could potentially do that. > I believe it'd be hard until we have ticks directive. > > Cheers, > -- > Michał Marcin Brzuchalski >