エラーが示すように、$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