Comme le dit l'erreur, vous ne pouvez pas utiliser $this
en dehors de la définition de classe. Pour utiliser $_db
en dehors de la définition de la classe, rendez-la d'abord public
au lieu de private
:
public $_db
Ensuite, utilisez ce code :
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Vous devez comprendre ce que $this
signifie en réalité. Lorsqu'il est utilisé dans une définition de classe, $this
est utilisé pour faire référence à un objet de cette classe. Donc si vous aviez une fonction foo
à l'intérieur de AuthDB
, et vous deviez accéder à $_db
depuis foo
, vous utiliseriez $this
pour dire à PHP que vous voulez le $_db
du même objet que foo
appartient à.
Vous voudrez peut-être lire cette question StackOverflow :PHP :self vs $this