Som felet säger kan du inte använda $this
utanför klassdefinitionen. För att använda $_db
utanför klassdefinitionen, gör den först public
istället för private
:
public $_db
Använd sedan den här koden:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Du måste förstå vad $this
betyder faktiskt. När den används i en klassdefinition, $this
används för att referera till ett objekt i den klassen. Så om du hade en funktion foo
inuti AuthDB
, och du behövde komma åt $_db
inifrån foo
, skulle du använda $this
för att tala om för PHP att du vill ha $_db
från samma objekt som foo
tillhör.
Du kanske vill läsa denna StackOverflow-fråga:PHP:self vs $this