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