Come dice l'errore, non puoi usare $this
al di fuori della definizione di classe. Per utilizzare $_db
al di fuori della definizione della classe, prima rendila public
invece di private
:
public $_db
Quindi, usa questo codice:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Devi capire cosa $this
in realtà significa. Quando viene utilizzato all'interno di una definizione di classe, $this
è usato per fare riferimento a un oggetto di quella classe. Quindi, se avessi una funzione foo
all'interno di AuthDB
e dovevi accedere a $_db
da foo
, useresti $this
per dire a PHP che vuoi il $_db
dallo stesso oggetto che foo
appartiene a.
Potresti voler leggere questa domanda su StackOverflow:PHP:self vs $this