理解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中文網其他相關文章!