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