当我阅读Laravel框架中编写的代码时,我发现ClassName::class
有很多用途。修饰符::class
的含义是什么?这是Laravel还是PHP的功能?我搜索过但无法找到文档。
答案 0 :(得分:31)
从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
答案 1 :(得分:6)
它只返回带有命名空间的类名! 从PHP 5.5开始,class关键字也用于类名解析。您可以使用ClassName :: class获取包含ClassName类的完全限定名称的字符串。这对于命名空间类特别有用。
namespace NS {
class ClassName {
}
echo ClassName::class;
}
以上示例将输出:
NS\ClassName
答案 2 :(得分:0)
请参阅to this
::class
Since PHP 5.5, the class keyword is also used for class name resolution.