Re: SomeClass::class error???
| From: | Marco Pivetta | Date: | Wed, 05 Jul 2023 16:16:45 +0000 |
| Subject: | Re: SomeClass::class error??? | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-120752@lists.php.net to get a copy of this message | ||
Hey Fabio,
On Wed, 5 Jul 2023 at 18:14, Fabio Carpi <fabiocarpi@hotmail.com.br> wrote:
> I'm new here on the list... Hello everyone!
>
> I use ::class sometimes to check some classes, but it works with any
> keyword, even if the class doesn't exist.
> The IDE doesn't show the error, and I only detect the error when the
> specific piece of code is running...
>
> <?php
> echo foo::class;
>
See https://3v4l.org/8lL10
::class is effectively replaced with a string at compile time:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/8lL10
function name: (null)
number of ops: 2
compiled vars: none
line #* E I O op fetch ext
return operands
-------------------------------------------------------------------------------------
2 0 E > ECHO
'foo'
3 1 > RETURN 1
This is by design, since otherwise each ::class lookup would result in
autoloading, which would be disastrous for large maps of classes (like in
service containers).
Marco Pivetta
https://mastodon.social/@ocramius
https://ocramius.github.io/