Както казва грешката, не можете да използвате $this
извън дефиницията на класа. За да използвате $_db
извън дефиницията на класа, първо го направете public
вместо private
:
public $_db
След това използвайте този код:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Трябва да разберете какво $this
всъщност означава. Когато се използва в дефиниция на клас, $this
се използва за препращане към обект от този клас. Така че, ако имате функция foo
вътре в AuthDB
, и трябваше да получите достъп до $_db
от foo
, бихте използвали $this
за да кажете на PHP, че искате $_db
от същия обект, който foo
принадлежи на.
Може да искате да прочетете този въпрос на StackOverflow:PHP:self vs $this