Selbst vs. $this: Wann und wie man jedes verwendet
Frage:
Wie unterscheiden sich die Schlüsselwörter „self“ und „$this“ in PHP 5 in ihrer Verwendung? Wann sollte jeder richtig verwendet werden?
Antwort:
Kurze Antwort:
Verwenden Sie „$this“, um darauf zu verweisen die Instanzvariablen und -methoden des aktuellen Objekts. Verwenden Sie „self“, um auf die statischen Variablen und Methoden der aktuellen Klasse zu verweisen.
Vollständige Antwort:
Nichtstatische vs. statische Mitglieder:
Polymorphismus:
Beispiel (richtige Verwendung):
class X { private $non_static_member = 1; private static $static_member = 2; function __construct() { echo $this->non_static_member . ' ' . self::$static_member; } } new X(); // Output: 1 2
Beispiel (falsche Verwendung):
class X { private $non_static_member = 1; private static $static_member = 2; function __construct() { echo self::$non_static_member . ' ' . $this->static_member; // Incorrect usage } } new X(); // Error: Undefined properties
Unterdrücken Polymorphismus:
class X { function foo() { echo 'X::foo()'; } function bar() { self::foo(); // Suppresses polymorphism } } class Y extends X { function foo() { echo 'Y::foo()'; } } $x = new Y(); $x->bar(); // Output: X::foo()
Zusammenfassung:
Verwenden Sie „$this“ für nicht-statischen Mitgliedszugriff und Polymorphismus. Verwenden Sie „self“ für den Zugriff auf statische Mitglieder und wenn Sie Polymorphismus unterdrücken müssen.
Das obige ist der detaillierte Inhalt vonPHP 5: „$this' vs. „self' – Wann sollte man jedes verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!