Memahami ::class dalam PHP
Sintaks kelas ::class dalam PHP merujuk kepada penambahan yang agak baru-baru ini yang diperkenalkan dalam versi 5.5. Ia berfungsi sebagai notasi trengkas untuk mewakili nama kelas yang layak sepenuhnya, termasuk ruang namanya.
Fungsi dan Kelebihan
SomeClass::class akan mengembalikan perwakilan rentetan daripada nama layak sepenuhnya SomeClass. Ciri ini menawarkan beberapa kelebihan:
use \App\Console\Commands\Inspire; //... protected $commands = [ Inspire::class, // Equivalent to "App\Console\Commands\Inspire" ];
Faedah Tambahan: Pengikatan Statik Lewat
Selain kelebihan yang dinyatakan di atas, ::class juga berguna untuk melaksanakan Statik Lewat Binding, di mana nama kelas terbitan boleh diperolehi dalam kelas induk. Ini dicapai dengan menggunakan static::class dan bukannya CLASS pemalar ajaib, seperti yang dilihat dalam contoh berikut:
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
Atas ialah kandungan terperinci Apakah Sintaks PHP `::class` dan Bagaimana Ia Memperbaiki Kod?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!