Rumah >pembangunan bahagian belakang >tutorial php >Bila hendak menggunakan `self` vs. `$this` dalam PHP 5 untuk Mengakses Ahli Kelas?
Bila Menggunakan 'self' berbanding '$this' dalam PHP 5
Dalam PHP 5, menggunakan kata kunci yang betul untuk merujuk kepada kelas ahli dan kaedah adalah penting. Apabila ia datang kepada pilihan antara 'diri' dan '$ini', keputusan bergantung pada sama ada anda merujuk ahli statik atau ahli instance.
Menggunakan '$this' untuk Ahli Instance.
'$this' merujuk kepada tika semasa objek. Ia digunakan untuk mengakses ahli bukan statik, yang khusus untuk setiap kejadian. Contohnya:
class MyClass { private $member = 1; function __construct() { echo $this->member; // Outputs 1 } }
Menggunakan 'diri' untuk Ahli Statik
'diri' merujuk kepada kelas semasa, tanpa mengira contoh. Ia digunakan untuk mengakses ahli statik, yang dikongsi antara semua kejadian kelas. Contohnya:
class MyClass { private static $staticMember = 2; function __construct() { echo self::$staticMember; // Outputs 2 } }
Polimorfisme dan Fungsi Ahli
'$this' membolehkan polimorfisme, membenarkan kelas terbitan mengatasi fungsi ahli kelas induk. Contohnya:
class BaseClass { function foo() { echo 'BaseClass::foo()'; } } class DerivedClass extends BaseClass { function foo() { echo 'DerivedClass::foo()'; } } $derivedObject = new DerivedClass(); $derivedObject->foo(); // Outputs 'DerivedClass::foo()'
Menindas Polimorfisme dengan 'diri'
Dengan menggunakan 'diri' dan bukannya '$this' dalam fungsi ahli, anda boleh menyekat tingkah laku polimorfik . Fungsi ini akan sentiasa memanggil pelaksanaan daripada kelas induk, tanpa mengira jenis objek sebenar. Contohnya:
class BaseClass { function foo() { echo 'BaseClass::foo()'; } } class DerivedClass extends BaseClass { function foo() { echo 'DerivedClass::foo()'; } } $derivedObject = new DerivedClass(); $derivedObject->self::foo(); // Outputs 'BaseClass::foo()'
Atas ialah kandungan terperinci Bila hendak menggunakan `self` vs. `$this` dalam PHP 5 untuk Mengakses Ahli Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!