Zoals de fout zegt, kun je $this . niet gebruiken buiten de klassedefinitie. $_db gebruiken buiten de klassedefinitie, maak deze eerst public in plaats van private :
public $_db
Gebruik dan deze code:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Je moet begrijpen wat $this . is eigenlijk betekent. Bij gebruik binnen een klassedefinitie, $this wordt gebruikt om te verwijzen naar een object van die klasse. Dus als je een functie had foo binnen AuthDB , en je moest toegang krijgen tot $_db vanuit foo , zou je $this . gebruiken om PHP te vertellen dat je de $_db . wilt van hetzelfde object dat foo behoort.
Misschien wil je deze StackOverflow-vraag lezen:PHP:self vs $this