Wann sollte in PHP 5 „self“ anstelle von „$this“ verwendet werden?
Verwenden Sie in PHP 5 das richtige Schlüsselwort, um auf die Klasse zu verweisen Mitglieder und Methoden sind entscheidend. Bei der Wahl zwischen „self“ und „$this“ hängt die Entscheidung davon ab, ob Sie auf ein statisches Mitglied oder ein Instanzmitglied verweisen.
Verwenden von „$this“ für Instanzmitglieder
'$this' bezieht sich auf die aktuelle Instanz des Objekts. Es wird verwendet, um auf nicht statische Mitglieder zuzugreifen, die für jede Instanz spezifisch sind. Zum Beispiel:
class MyClass { private $member = 1; function __construct() { echo $this->member; // Outputs 1 } }
Verwendung von „self“ für statische Mitglieder
„self“ bezieht sich auf die aktuelle Klasse, unabhängig von der Instanz. Es wird verwendet, um auf statische Mitglieder zuzugreifen, die von allen Instanzen der Klasse gemeinsam genutzt werden. Zum Beispiel:
class MyClass { private static $staticMember = 2; function __construct() { echo self::$staticMember; // Outputs 2 } }
Polymorphismus und Mitgliedsfunktionen
'$this' aktiviert Polymorphismus, sodass abgeleitete Klassen Mitgliedsfunktionen der übergeordneten Klasse überschreiben können. Zum Beispiel:
class BaseClass { function foo() { echo 'BaseClass::foo()'; } } class DerivedClass extends BaseClass { function foo() { echo 'DerivedClass::foo()'; } } $derivedObject = new DerivedClass(); $derivedObject->foo(); // Outputs 'DerivedClass::foo()'
Polymorphismus mit „self“ unterdrücken
Durch die Verwendung von „self“ anstelle von „$this“ in Mitgliedsfunktionen können Sie polymorphes Verhalten unterdrücken . Die Funktion ruft immer die Implementierung aus der übergeordneten Klasse auf, unabhängig vom tatsächlichen Typ des Objekts. Zum Beispiel:
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()'
Das obige ist der detaillierte Inhalt vonWann sollte „self' vs. „$this' in PHP 5 verwendet werden, um auf Klassenmitglieder zuzugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!