Jak chyba říká, nemůžete použít $this
mimo definici třídy. Chcete-li použít $_db
mimo definici třídy, nejprve ji udělejte public
místo private
:
public $_db
Poté použijte tento kód:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Musíte pochopit, co $this
vlastně znamená. Při použití v definici třídy $this
se používá k označení objektu této třídy. Pokud jste tedy měli funkci foo
uvnitř AuthDB
a potřebovali jste přístup k $_db
zevnitř foo
, použili byste $this
říct PHP, že chcete $_db
ze stejného objektu jako foo
patří.
Možná si budete chtít přečíst tuto otázku StackOverflow:PHP:self vs $this