Mysql
 sql >> Database >  >> RDS >> Mysql

Errore irreversibile:utilizzo di $this quando non si trova nel contesto dell'oggetto in

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