Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Schwerwiegender Fehler:Verwendung von $this, wenn nicht im Objektkontext in

Wie der Fehler sagt, können Sie $this nicht verwenden außerhalb der Klassendefinition. Um $_db zu verwenden außerhalb der Klassendefinition zuerst public machen statt private :

public $_db

Verwenden Sie dann diesen Code:

$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same

--

Sie müssen verstehen, was $this ist eigentlich bedeutet. Bei Verwendung innerhalb einer Klassendefinition $this wird verwendet, um auf ein Objekt dieser Klasse zu verweisen. Wenn Sie also eine Funktion foo hätten innerhalb von AuthDB , und Sie mussten auf $_db zugreifen innerhalb von foo , würden Sie $this verwenden um PHP mitzuteilen, dass Sie $_db wollen aus demselben Objekt wie foo gehört.

Vielleicht möchten Sie diese StackOverflow-Frage lesen:PHP:self vs $this