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

yin*_*wei 15 php laravel

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

DeD*_*Dee 33

从PHP 5.5开始,class关键字也用于类名解析.您可以使用包含ClassName类的完全限定名称的字符串ClassName::class.这对于命名空间类特别有用.

例如

namespace MyProject;
class Alpha{ }

namespace MyOtherProject;
class Beta{ }

echo Alpha::class; // displays: MyProject\Alpha
echo Beta::class; // displays: MyOtherProject\Beta
Run Code Online (Sandbox Code Playgroud)


小智 8

它只返回带有命名空间的类名!从PHP 5.5开始,class关键字也用于类名解析.您可以使用ClassName :: class获取包含ClassName类的完全限定名称的字符串.这对于命名空间类特别有用.

namespace NS {
    class ClassName {
    }
    echo ClassName::class;
}
Run Code Online (Sandbox Code Playgroud)

上面的例子将输出:

NS\ClassName
Run Code Online (Sandbox Code Playgroud)