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

Reply via email to