理解 PHP 中的 ::class
PHP 中的 ::class 语法是指版本 5.5 中引入的相对较新的补充。它用作表示类的完全限定名称(包括其命名空间)的速记符号。
功能和优点
SomeClass::class 将返回字符串表示形式SomeClass 的完全限定名称。此功能提供了几个优点:
use \App\Console\Commands\Inspire; //... protected $commands = [ Inspire::class, // Equivalent to "App\Console\Commands\Inspire" ];
额外好处:后期静态绑定
除了上述优点之外,::class 对于实现后期静态也很有用绑定,可以在父类内部获取派生类的名称。这是通过使用 static::class 而不是 CLASS 魔术常量来实现的,如以下示例所示:
class A { public function getClassName(){ return __CLASS__; } public function getRealClassName() { return static::class; } } class B extends A {} $a = new A; $b = new B; echo $a->getClassName(); // A echo $a->getRealClassName(); // A echo $b->getClassName(); // A echo $b->getRealClassName(); // B
以上是PHP `::class` 语法是什么以及它如何改进代码?的详细内容。更多信息请关注PHP中文网其他相关文章!