【问题标题】:What does ClassName::class mean in PHP? [duplicate]PHP 中的 ClassName::class 是什么意思? [复制]
【发布时间】:2015-12-03 14:07:41
【问题描述】:

当我阅读用 Laravel 框架编写的代码时,我看到了很多 ClassName::class 的用法。修饰符::class是什么意思?这是 Laravel 还是 PHP 的特性?我已经搜索过,但找不到文档。

【问题讨论】:

  • This 链接将您带到 PHP 文档中解释类名解析的正确页面。

标签: php laravel


【解决方案1】:

从 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

【讨论】:

    【解决方案2】:

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

    namespace NS {
        class ClassName {
        }
        echo ClassName::class;
    }
    

    上面的例子会输出:

    NS\ClassName
    

    【讨论】:

      【解决方案3】:

      请参考to this

      ::class
      Since PHP 5.5, the class keyword is also used for class name resolution. 
      

      【讨论】:

        猜你喜欢
        • 2012-10-06
        • 2014-12-03
        • 2019-06-22
        • 1970-01-01
        • 2012-11-28
        • 2011-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多