On Wed, May 12, 2021 at 11:38 AM Guilliam Xavier <guilliam.xav...@gmail.com>
wrote:

>
>
> On Sun, Jun 28, 2020 at 2:34 PM Nikita Popov <nikita....@gmail.com> wrote:
>
>> On Sat, Jun 27, 2020 at 3:53 PM Stephen Reay <php-li...@koalephant.com>
>> wrote:
>>
>> > Hi,
>> >
>> > It’s always struck me as slightly odd that traits don’t support
>> constants
>> > the way classes and interfaces do.
>> > I tried to find an explanation of the lack of support in the original
>> RFC,
>> > and came up empty.
>> >
>> > A consequent discussion in R11 has led me here.
>> > Can anyone working on internals explain why traits don’t allow constants
>> > (either technically or philosophically)?
>> > Moreover, what’s the opinion(s) of the list, on adding support for this?
>> > Would an RFC be needed?
>> >
>>
>> Sounds like a reasonable addition. An RFC will be needed to specify the
>> details, which tend to be tricky whenever traits are involved. Some
>> suggestions:
>>
>>  * Constants mustn't be accessible directly on the trait, i.e.
>> TraitName::FOOBAR throws.
>>
>
> Sorry for asking so late, but: why?
> Note that currently both TraitName::$foobar and TraitName::foobar() work:
> https://3v4l.org/eGlYm
>

Yes, unfortunately this currently works by accident, but support for it
will be removed (
https://wiki.php.net/rfc/deprecations_php_8_1#accessing_static_members_on_traits
).

Regards,
Nikita

Reply via email to