On Wed, Dec 21, 2022, at 3:23 PM, Larry Garfield wrote:
> On Tue, Dec 13, 2022, at 11:03 AM, Claude Pache wrote:
>>> Le 13 déc. 2022 à 16:34, Claude Pache <claude.pa...@gmail.com> a écrit :
>>> 
>>> 
>>> Hi,
>>> 
>>> As of today, the following declarations are rejected as syntax errors:
>>> 
>>> ```php
>>> class C {
>>>     $a;
>>>     int $b;
>>> }
>>> ```
>>> 
>>> while the following declarations are accepted with implicit `public` 
>>> visibility:
>>> 
>>> ```php
>>> class C {
>>>     static $c;
>>>     readonly int $d;
>>> }
>>> ```
>>> 
>>> It would be reasonable to propose to allow to consistently omit the 
>>> `public` keyword. But allowing to omit it in some cases (including the most 
>>> controversial one: `protected(set)`) and not in other cases...? Because of 
>>> this inconsistency, people are incited to always write explicitly `public` 
>>> anyway.
>>> 
>>> —Claude
>>
>>
>> However, I’m just realising that omitting `public` in declarations like 
>> `public $a` and `public int $b` is probably not a good idea, because it 
>> is incompatible with constructor property promotion, as `function 
>> __construct(public int $b) { }`, and `function __construct(int $b) { }` 
>> have different meanings.
>>
>> —Claude
>
> Well, it seems the only people who have opinions on the abbreviated 
> form at all dislike it, so we've removed it for now and left a mention 
> in future-scope.  A future RFC can add that if desired.
>
> That should, I think, be the final change to the asymmetric visibility 
> RFC.  Baring anything else coming up, I expect to call the vote 
> sometime the week of 2 January.
>
> Happy $holiday!
>
> --Larry Garfield

Happy New Year, PHP.  Fair warning, I will be opening the vote for asymmetric 
visibility on Friday, baring any sudden new inputs in the next 40-ish hours.

--Larry Garfield

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to