【问题标题】:what is ::class php in laravel [duplicate]什么是 laravel 中的 ::class php [重复]
【发布时间】:2018-11-30 02:34:06
【问题描述】:

抱歉英语不好!
我知道ClassName::Class 将返回带有命名空间的类名。
但是为什么在 laravel 中使用命名空间编写类名时使用这个?
喜欢:

\App\Http\Middleware\TrimStrings::class

我对此感到困惑!
谁能告诉我 ::Class 到底是什么?

【问题讨论】:

  • 正如在副本中所讨论的,对我来说最重要的是 IDE 对自动完成和链接的支持。

标签: php laravel


【解决方案1】:

答案:

使用 ::class 语法允许您声明一个类,而无需 将其作为字符串传递。当他们更新 ide 时,它​​将有助于自动 填充无法用字符串完成的命名空间。

来源信息:

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

示例 #10 类名解析

<?php
namespace NS {
    class ClassName {
    }

    echo ClassName::class;
}
?>

上面的例子会输出:

NS\ClassName

注意:

使用 ::class 的类名解析是一个编译时间 转型。这意味着当时的类名字符串是 created 还没有发生自动加载。因此,类名 即使类不存在也会被扩展。没有错误发出 那个案例。

来源链接 :: Php Manual

【讨论】:

  • 有用的问题,特别是最后一点
猜你喜欢
  • 2012-07-28
  • 2015-08-26
  • 2016-08-23
  • 2015-12-03
  • 2022-06-16
  • 1970-01-01
  • 2017-11-28
相关资源
最近更新 更多