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