在laravel中,`::class`是一个用于获取类的完全限定名称(fully qualified class name)的特殊语法。它返回一个字符串,包含类的命名空间和类名。这在定义类别名(alias)或进行反射操作时非常有用。
问题:what is ::class php in laravel?
原因:使用::class语法可以声明一个类,而无需将其作为字符串传递。当IDE更新时,它将有助于自动填充命名空间,而这是无法通过字符串实现的。
解决方法:在PHP 5.5及以上版本中,class关键字还用于类名解析。通过使用ClassName::class,可以获得一个包含ClassName类的完全限定名的字符串。这在使用命名空间的类时特别有用。
示例:
namespace NS { class ClassName { } echo ClassName::class; }
以上示例将输出:
NS\ClassName
注意:
使用::class进行类名解析是在编译时进行的转换。这意味着在创建类名字符串时尚未发生自动加载。因此,即使类不存在,类名也会被展开。在这种情况下不会报错。
参考链接:Php Manual (http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.class.class)