Rumah >pembangunan bahagian belakang >tutorial php >PHP `self` lwn. `$this`: Bila Untuk Menggunakan Setiap?
Bila Menggunakan 'Self' dan '$This' dalam PHP
Dalam PHP, memahami perbezaan antara 'self' dan '$ ini' adalah penting. 'Self' merujuk kepada kelas semasa, manakala '$this' merujuk kepada objek semasa.
Bila Gunakan 'Self':
Mengakses ahli statik (pembolehubah atau kaedah):
class MyClass { static $static_member = 10; } echo MyClass::$static_member; // Output: 10
Memanggil kaedah kelas induk:
class ChildClass extends ParentClass { public function myMethod() { self::parentMethod(); // Calls the parent class method } }
Bila Gunakan '$This':
Mengakses ahli bukan statik :
class MyClass { private $instance_member = 20; } $obj = new MyClass(); echo $obj->instance_member; // Output: 20
Contoh panggilan kaedah:
class MyClass { public function myMethod() { echo $this->instance_member; // Accesses the instance member } }
Polymorphism: Memanggil kaedah contoh daripada kelas terbitan:
class BaseClass { public function myMethod() { echo 'BaseClass::myMethod()'; } } class DerivedClass extends BaseClass { override public function myMethod() { echo 'DerivedClass::myMethod()'; } } $baseObj = new BaseClass(); $derivedObj = new DerivedClass(); $baseObj->myMethod(); // Output: 'BaseClass::myMethod()' $derivedObj->myMethod(); // Output: 'DerivedClass::myMethod()'
Menindas polimorfisme: Memanggil kaedah kelas induk menggunakan ' diri' dalam kelas terbitan:
class BaseClass { public function myMethod() { echo 'BaseClass::myMethod()'; } } class DerivedClass extends BaseClass { override public function myMethod() { parent::myMethod(); // Calls the BaseClass's myMethod() using self:: } } $derivedObj = new DerivedClass(); $derivedObj->myMethod(); // Output: 'BaseClass::myMethod()'
Atas ialah kandungan terperinci PHP `self` lwn. `$this`: Bila Untuk Menggunakan Setiap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!