PHP の ::class を理解する: クラス操作のための多用途ツール
多くの開発者は、謎の :: に馴染みがないかもしれません。 PHP の class 表記は、その不可解な性質により使用されません。それが何なのか、そしてそれが開発者にどのようなメリットがあるのかを詳しく見てみましょう。
::class とは何ですか?
PHP の ::class 構文により、次のことが可能になります。名前空間を含むクラスの完全修飾名を取得します。この機能は PHP 5.5 で導入されました。
::class を使用する利点
この表記法には、次の 2 つの主な利点があります。
use \App\Console\Commands\Inspire; //... protected $commands = [ Inspire::class, // Equivalent to "App\Console\Commands\Inspire" ];
追加の利点
前述の利点に加えて、::class 表記は、遅延静的バインディングにおける重要な役割。 CLASS マジック定数とは異なり、static::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 中国語 Web サイトの他の関連記事を参照してください。