Verwendung von $this in PHP-Klassen
Beim Versuch tritt der PHP-Fehler „Fatal error: Using $this when not in object context“ auf Greifen Sie auf das Schlüsselwort $this außerhalb einer Klassenmethode zu, die ein Objekt erfordert Instanz.
Erklärung
In PHP bezieht sich das Schlüsselwort $this auf die aktuelle Objektinstanz innerhalb einer Klassenmethode. Der Versuch, $this außerhalb eines Objektkontexts zu verwenden, beispielsweise in einer statischen Methode oder einem globalen Bereich, führt zu dem oben genannten Fehler.
Beispiel
Der bereitgestellte Code zeigt, wie der Fehler auftreten kann. In class.php versucht die Methode foobarfunc() fälschlicherweise, auf $this->foo() zuzugreifen, was nur innerhalb einer Objektinstanz gültig ist.
Lösung
Um den Fehler zu beheben, können Sie entweder:
Die Methode als statische Methode erstellen Methode:
static public function foobarfunc() { return self::$foo; }
Dies ermöglicht Ihnen den Zugriff auf die Methode über den Klassennamen anstelle einer Objektinstanz, z. B. foobar::foobarfunc().
Erstellen eine Objektinstanz und rufen Sie die foobarfunc()-Methode dafür auf Instanz:
$foobar = new foobar; $result = $foobar->foobarfunc();
Denken Sie daran, dass statische Methoden direkt auf Klassenvariablen und -methoden zugreifen können, ohne dass eine Objektinstanz erforderlich ist, während für nicht statische Methoden zuerst eine bestimmte Objektinstanz erstellt werden muss .
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in PHP den Fehler „Schwerwiegender Fehler: Verwendung von $this, wenn nicht im Objektkontext'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!