Dalam PHP, kaedah statik ialah jenis kaedah khas, yang sangat berbeza daripada kaedah biasa. Artikel ini akan memperkenalkan secara terperinci konsep, penggunaan dan langkah berjaga-jaga kaedah statik dalam PHP.
Konsep
Dalam PHP, kaedah statik merujuk kepada kaedah yang boleh dipanggil tanpa membuat seketika objek. Dalam istilah orang awam, ia adalah operasi keseluruhan pada kelas, dan bukannya operasi pada objek yang di instantiated. Gunakan bendera kata kunci statik di hadapan kaedah untuk memberitahu penterjemah PHP bahawa ini adalah kaedah statik.
Penggunaan
Terdapat beberapa perkara yang perlu diperhatikan apabila menggunakan kaedah statik:
kaedah statik terus melalui nama kelas Tidak perlu membuat instantiate objek dan boleh dipanggil terus melalui nama kelas:
class Example { public static function Func(){ echo "This is a static function!\n" } } Example::Func(); //Output: This is a static function!
Biasanya dalam kaedah biasa, kami Gunakan kata kunci $this untuk merujuk sifat dan kaedah dalam kelas, tetapi dalam kaedah statik, kerana tiada objek instantiated, kata kunci $this tidak boleh digunakan:
class Example { public $name = "example"; public static function Func(){ echo "This is a static function! \n"; //不能使用$this //echo $this->name; //错误! } }
Anda boleh menggunakan kata kunci diri dan statik dalam kaedah statik untuk merujuk kelas itu sendiri dan kelas induk:
class Example { public static function Func(){ echo "This is a static function! \n"; //使用self引用类本身 echo "The class name is: ".self::class."\n"; } } class ChildExample extends Example { public static function Func() { //使用parent关键字引用父类 parent::Func(); //使用static关键字引用当前类 echo "The class name is: ".static::class."\n"; } } ChildExample::Func(); //Output: //This is a static function! //The class name is: Example //The class name is: ChildExample
Kaedah statik boleh diwarisi dan ditindih seperti kaedah biasa:
class Example { public static function Func(){ echo "This is a static function in Example! \n"; } } class ChildExample extends Example { public static function Func() { echo "This is a static function in ChildExample! \n"; parent::Func(); } } ChildExample::Func(); //Output: //This is a static function in ChildExample! //This is a static function in Example!
Nota
Memandangkan kaedah statik tidak mempunyai objek instantiated, sifat bukan statik tidak boleh diakses:
class Example { public $name = "example"; public static function Func() { echo "The class name is: ".self::class."\n"; //不能访问非静态属性 //echo "The name is: ".$this->name."\n"; //错误! } } Example::Func(); //The class name is: Example
dalam PHP, kaedah statik tidak boleh ditindih oleh kaedah bukan statik, dan kaedah bukan statik juga tidak boleh ditindih. Ini kerana kaedah statik tergolong dalam keseluruhan kelas, bukan objek, dan tidak boleh polimorfik.
Walaupun kaedah statik boleh memberikan banyak kemudahan, penggunaan kaedah statik yang berlebihan tidak kondusif kepada kebolehselenggaraan dan kebolehskalaan daripada program tersebut. Oleh itu, kita harus cuba mengelakkan penggunaan kaedah statik yang berlebihan dalam projek besar.
Ringkasan
Kaedah statik ialah jenis kaedah khas dalam PHP, yang boleh dipanggil terus tanpa membuat instantiation objek. Kaedah statik boleh menggunakan kata kunci diri dan statik untuk merujuk kelas itu sendiri dan kelas induk, tetapi tidak boleh menggunakan kata kunci $this. Memandangkan kaedah statik tergolong dalam keseluruhan kelas dan bukannya objek, ia harus digunakan sesedikit mungkin untuk memastikan kebolehselenggaraan dan skalabiliti program.
Atas ialah kandungan terperinci Pengenalan terperinci kepada kaedah statik dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!