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