Apakah Sintaks PHP `::class` dan Bagaimana Ia Memperbaiki Kod?

Patricia Arquette
Lepaskan: 2024-11-25 19:38:19
asal
582 orang telah melayarinya

What is the PHP `::class` Syntax and How Does it Improve Code?

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:

  • Pemfaktoran Semula Kod yang Diperbaiki: Dengan menggunakan ::class, anda boleh menghapuskan keperluan untuk kod keras nama kelas sebagai rentetan. Ini membolehkan IDE mengenal pasti dan mengemas kini nama kelas dengan mudah semasa pemfaktoran semula kod.
  • Gunakan Keserasian Kata Kunci: Kata kunci penggunaan boleh digabungkan dengan ::class untuk memudahkan resolusi kelas, mengurangkan keperluan untuk menaip keluar nama kelas yang lengkap. Contohnya:
use \App\Console\Commands\Inspire;

//...

protected $commands = [
    Inspire::class, // Equivalent to "App\Console\Commands\Inspire"
];
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan