On Tue, Mar 9, 2021 at 11:16 PM Kévin Dunglas <ke...@dunglas.fr> wrote:

> Hi folks,
>
> Currently, it's not possible to use the ::class special constant with the
> constant() function. This doesn't work:
>
> var_dump(
>   constant('\DateTime::class')
> );
>
> For instance, Twig's constant() helper internally uses this PHP function,
> consequently the following Twig template doesn't work:
>
> `myObject` contains a random object, retrieve its class:
> {{ constant('class', myObject) }}
>
> I wrote a patch adding support for ::class:
> https://github.com/php/php-src/pull/6763
> As this probably qualifies as a new feature, should I write an RFC too?
>

I'm not a fan of this change. X::class is not a constant, it just happens
to share the same syntax. I think that
https://github.com/php/php-src/pull/6763#issuecomment-795046502 makes the
key point that if this is treated as a proper class constant in constant(),
then it should also be treated as such everywhere else, including
reflection. And I really don't think we want to do that.

Regards,
Nikita

Reply via email to