PHP 5.5实现了一个新特性,可以通过语法::class
来检索类名:
<?php
namespace Testing;
class Test{}
echo Test::class; // Testing\Test;
这段代码能够完美运行,没问题吧?但是我和一些朋友想知道的是,当使用未声明的类名时,为什么这种语法也会返回一个类名。例如:
<?php
echo UndeclaredClass::class; // UndeclaredClass
在其他几种情况下会出现错误,但这里没有。有人知道为什么会发生这种情况吗?最好能给出具体的依据。
这是否与后期静态绑定有关,还是这个全新功能的(暂时)限制/缺陷呢?
<?php echo UndeclaredClass::class;
总是会抛出错误。 - Daniel W.