Heim >Backend-Entwicklung >PHP-Tutorial >PHP „self' vs. „$this': Wann sollte man beide verwenden?
Wann man „Self“ und „$This“ in PHP verwendet?
In PHP den Unterschied zwischen „self“ und „$“ verstehen Das ist entscheidend. „Self“ bezieht sich auf die aktuelle Klasse, während „$this“ sich auf das aktuelle Objekt bezieht.
Wann „Self“ verwendet werden sollte:
Zugriff auf statische Mitglieder (Variablen oder Methoden):
class MyClass { static $static_member = 10; } echo MyClass::$static_member; // Output: 10
Aufruf der übergeordneten Klasse Methoden:
class ChildClass extends ParentClass { public function myMethod() { self::parentMethod(); // Calls the parent class method } }
Wann sollte „$This“ verwendet werden:
Zugriff auf nicht statische Mitglieder:
class MyClass { private $instance_member = 20; } $obj = new MyClass(); echo $obj->instance_member; // Output: 20
Aufrufende Instanz Methoden:
class MyClass { public function myMethod() { echo $this->instance_member; // Accesses the instance member } }
Polymorphismus: Aufrufen von Instanzmethoden aus abgeleiteten Klassen:
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()'
Unterdrücken von Polymorphismus: Aufrufen von Methoden der übergeordneten Klasse mit ' self' in abgeleiteten Klassen:
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()'
Das obige ist der detaillierte Inhalt vonPHP „self' vs. „$this': Wann sollte man beide verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!