Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur fatale :utilisation de $this lorsqu'il n'est pas dans le contexte de l'objet dans

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