Re: [RFC] Asymmetric Visibility, with readonly
| From: | Claude Pache | Date: | Tue, 13 Dec 2022 17:03:05 +0000 |
| Subject: | Re: [RFC] Asymmetric Visibility, with readonly | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-119133@lists.php.net to get a copy of this message | ||
> Le 13 déc. 2022 à 16:34, Claude Pache <claude.pache@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‘+
> —L¦6ÌÍÍqGEYX 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