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