Como o erro diz, você não pode usar
$this
fora da definição de classe. Para usar $_db
fora da definição da classe, primeiro torne-a public
em vez de private
:public $_db
Então, use este código:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Você precisa entender o que
$this
realmente significa. Quando usado dentro de uma definição de classe, $this
é usado para se referir a um objeto dessa classe. Então, se você tivesse uma função foo
dentro de AuthDB
, e você precisava acessar $_db
de dentro de foo
, você usaria $this
para dizer ao PHP que você quer o $_db
do mesmo objeto que foo
pertence a. Você pode querer ler esta pergunta do StackOverflow:PHP:self vs $this