エラーが示すように、$thisは使用できません クラス定義の外。 $_dbを使用するには クラス定義の外では、最初にそれをpublicにします privateの代わりに :
public $_db
次に、次のコードを使用します:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
-
$thisが何であるかを理解する必要があります 実際に意味します。クラス定義内で使用する場合、$this そのクラスのオブジェクトを参照するために使用されます。したがって、関数fooがある場合 AuthDB内 、$_dbにアクセスする必要がありました foo内から 、$thisを使用します $_dbが必要であることをPHPに通知します fooと同じオブジェクトから に属します。
このStackOverflowの質問を読むことをお勧めします: PHP:self vs $ this