Como dice el error, no puedes usar $this
fuera de la definición de clase. Para usar $_db
fuera de la definición de clase, primero hágalo public
en lugar de private
:
public $_db
Luego, usa este código:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Tienes que entender lo que $this
en realidad significa. Cuando se usa dentro de una definición de clase, $this
se utiliza para referirse a un objeto de esa clase. Entonces, si tuviera una función foo
dentro de AuthDB
, y necesitabas acceder a $_db
desde dentro de foo
, usaría $this
para decirle a PHP que desea el $_db
del mismo objeto que foo
pertenece a.
Es posible que desee leer esta pregunta de StackOverflow:PHP:self vs $this