Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengenalan terperinci kepada kaedah statik dalam PHP

Pengenalan terperinci kepada kaedah statik dalam PHP

PHPz
PHPzasal
2023-04-19 09:19:131157semak imbas

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:

  1. Panggil

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!
  1. Kata kunci $this tidak boleh digunakan dalam kaedah

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; //错误!
    }
}
  1. Anda boleh menggunakan kata kunci diri dan statik

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
  1. boleh diwarisi dan ditindih

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

  1. Kaedah statik hanya boleh mengakses sifat statik

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
  1. Kaedah statik tidak boleh ditindih oleh kaedah bukan statik

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.

  1. Kaedah statik harus digunakan sesedikit mungkin

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!

Kenyataan:
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