ClassName :: class在PHP中意味着什么?

时间:2015-09-08 02:46:01

标签: php laravel

当我阅读Laravel框架中编写的代码时,我发现ClassName::class有很多用途。修饰符::class的含义是什么?这是Laravel还是PHP的功能?我搜索过但无法找到文档。

3 个答案:

答案 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.