"Ralat Maut PHP: Menggunakan $this Apabila Tiada dalam Konteks Objek" Selesai
Menghadapi ralat "Ralat maut: Menggunakan $ini apabila bukan dalam konteks objek" menunjukkan bahawa kata kunci $this yang dirujuk digunakan di luar konteks kelas. Untuk memahami perkara ini dengan lebih baik, mari kita membedah kod anda:
Dalam index.php anda, anda memerlukan fail load.php, yang seterusnya memerlukan class.php. Dalam class.php, ralat berlaku disebabkan oleh tugasan $this->foo dalam pembina.
Baris $this->foo = $foo; cuba untuk mengakses sifat foo objek semasa, tetapi tanpa membuat seketika objek, tiada $ini untuk dirujuk. Oleh itu, baris ini tidak sah di luar konteks objek.
Untuk membetulkan ralat, anda mesti membuat instantiate objek kelas foobar dan memanggil kaedahnya pada objek itu. Ini boleh dicapai melalui contoh berikut:
Invokasi Kaedah Statik:
Ubah suai kelas.php anda dengan mengisytiharkan kaedah foobarfunc sebagai statik dan mentakrifkan pembolehubah statik $foo . Ini membolehkan anda memanggil kaedah secara terus tanpa membuat instantiat objek.
Invokasi Objek:
Instantiate objek kelas foobar menggunakan $foobar = new foobar; dan kemudian panggil kaedahnya pada objek itu menggunakan $foobar->foobarfunc();.
Oleh itu, ralat timbul apabila cuba menggunakan $this di luar konteks objek. Untuk menyelesaikannya, sama ada gunakan kaedah statik tanpa rujukan $ini atau nyatakan objek dan panggil kaedah padanya.
Atas ialah kandungan terperinci Mengapakah Saya Mendapat Ralat 'PHP Fatal: Menggunakan $this When Not in Object Context'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!