„Schwerwiegender PHP-Fehler: Verwendung von $this, wenn nicht im Objektkontext“ behoben
Fehler „Schwerwiegender Fehler: Verwendung von $this, wenn.“ nicht im Objektkontext“ gibt an, dass das referenzierte Schlüsselwort $this außerhalb eines Klassenkontexts verwendet wird. Um dies besser zu verstehen, analysieren wir Ihren Code:
In Ihrer index.php benötigen Sie die Datei „load.php“, die wiederum die Datei „class.php“ benötigt. Innerhalb von class.php tritt der Fehler aufgrund der $this->foo-Zuweisung im Konstruktor auf.
Die Zeile $this->foo = $foo; versucht, auf die foo-Eigenschaft des aktuellen Objekts zuzugreifen, aber ohne ein Objekt zu instanziieren, gibt es kein $this, auf das verwiesen werden kann. Daher ist diese Zeile außerhalb eines Objektkontexts ungültig.
Um den Fehler zu beheben, müssen Sie ein Objekt der Foobar-Klasse instanziieren und seine Methoden für dieses Objekt aufrufen. Dies kann durch die folgenden Beispiele erreicht werden:
Statischer Methodenaufruf:
Ändern Sie Ihre class.php, indem Sie die foobarfunc-Methode als statisch deklarieren und eine statische Variable $foo definieren . Dadurch können Sie die Methode direkt aufrufen, ohne ein Objekt zu instanziieren.
Objektaufruf:
Instanziieren Sie ein Objekt der foobar-Klasse mit $foobar = new foobar; und dann seine Methoden für dieses Objekt mit $foobar->foobarfunc(); aufrufen.
Daher tritt der Fehler auf, wenn versucht wird, $this außerhalb eines Objektkontexts zu verwenden. Um das Problem zu lösen, verwenden Sie entweder statische Methoden ohne $this-Referenz oder instanziieren Sie ein Objekt und rufen Sie Methoden dafür auf.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Schwerwiegender PHP-Fehler: Verwendung von $this, wenn nicht im Objektkontext'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!