当我阅读用Laravel框架编写的代码时,我看到了很多ClassName::class
的使用。修饰语::class
是什么意思?这是Laravel还是PHP的特性?
例如从PHP 5.5开始,class关键字也用于类名解析。您可以使用
ClassName::class
获得包含ClassName类的完全限定名的字符串。这对于命名空间类尤其有用。
namespace MyProject;
class Alpha{ }
namespace MyOtherProject;
class Beta{ }
echo Alpha::class; // displays: MyProject'Alpha
echo Beta::class; // displays: MyOtherProject'Beta
它只返回类名和命名空间!从PHP 5.5开始,class关键字也用于类名解析。您可以使用ClassName::class获得包含ClassName类的完全限定名的字符串。这对于命名空间类尤其有用。
namespace NS {
class ClassName {
}
echo ClassName::class;
}
上面的示例将输出:
NS'ClassName
请参考本
::class
Since PHP 5.5, the class keyword is also used for class name resolution.