Seperti yang dikatakan kesalahan, Anda tidak dapat menggunakan $this di luar definisi kelas. Untuk menggunakan $_db di luar definisi kelas, pertama buat public alih-alih private :
public $_db
Kemudian, gunakan kode ini:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
Anda harus mengerti apa itu $this sebenarnya berarti. Saat digunakan di dalam definisi kelas, $this digunakan untuk merujuk ke objek dari kelas itu. Jadi jika Anda memiliki fungsi foo di dalam AuthDB , dan Anda perlu mengakses $_db dari dalam foo , Anda akan menggunakan $this untuk memberi tahu PHP bahwa Anda menginginkan $_db dari objek yang sama dengan foo milik.
Anda mungkin ingin membaca pertanyaan StackOverflow ini:PHP:self vs $this