Schwerwiegender PHP-Fehler: Verwendung von $this, wenn nicht im Objektkontext
Problem:
Beim Versuch, innerhalb einer nicht statischen Methode einer Klasse in PHP auf die Variable $this zuzugreifen, tritt die folgende Fehlermeldung auf: „Using $this when not in object.“ Kontext."
Antwort:
Dieser Fehler tritt auf, wenn versucht wird, auf die Variable $this außerhalb einer Objektinstanz zuzugreifen. Die Variable $this verweist auf das aktuelle Objekt und kann nur im Kontext eines instanziierten Objekts verwendet werden.
Lösung:
Um diesen Fehler zu beheben, instanziieren Sie ein Objekt von die Klasse und greifen über die Objektinstanz auf die Methode zu. Zum Beispiel:
$object = new MyClass(); $object->myMethod();
Wenn die Methode statisch ist, können Sie alternativ direkt über den Klassennamen darauf zugreifen, ohne ein Objekt zu instanziieren:
MyClass::staticMethod();
Beispiel:
Stellen Sie in Ihrer class.php-Datei sicher, dass die Methode foobarfunc() nicht als statische Methode definiert ist. Wenn es nicht statisch ist, müssen Sie ein Objekt der foobar-Klasse instanziieren, bevor Sie auf die Methode zugreifen:
$foobar = new foobar(); $foobar->foobarfunc();
Wenn Sie eine statische Methode erstellen möchten, stellen Sie sicher, dass die Methode als statisch deklariert ist und dass die $ Die foo-Variable wird als statisch deklariert:
class foobar { public static $foo; public static function foobarfunc() { return self::$foo; } } foobar::foobarfunc();
Das obige ist der detaillierte Inhalt vonWarum erhalte ich den schwerwiegenden PHP-Fehler „$this verwenden, wenn nicht im Objektkontext'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!