Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Saya Mendapat 'Ralat maut: Menggunakan $ini apabila tidak dalam konteks objek' dalam PHP?
Menggunakan $this dalam Kelas PHP
Ralat PHP "Ralat maut: Menggunakan $this apabila tidak dalam konteks objek" berlaku apabila cuba untuk akses kata kunci $ini di luar kaedah kelas yang memerlukan objek instance.
Penjelasan
Dalam PHP, kata kunci $this merujuk kepada tika objek semasa dalam kaedah kelas. Percubaan untuk menggunakan $this di luar konteks objek, seperti dalam kaedah statik atau skop global, akan mengakibatkan ralat yang dinyatakan di atas.
Contoh
Kod yang disediakan menunjukkan bagaimana ralat boleh berlaku. Dalam class.php, kaedah foobarfunc() tersilap cuba mengakses $this->foo(), yang hanya sah dalam contoh objek.
Penyelesaian
Untuk menyelesaikan ralat, anda boleh sama ada:
Buat kaedah sebagai kaedah statik:
static public function foobarfunc() { return self::$foo; }
Ini membolehkan anda mengakses kaedah menggunakan nama kelas dan bukannya contoh objek, cth., foobar::foobarfunc().
Buat contoh objek dan panggil kaedah foobarfunc() pada itu contoh:
$foobar = new foobar; $result = $foobar->foobarfunc();
Ingat, kaedah statik boleh terus mengakses pembolehubah kelas dan kaedah tanpa memerlukan contoh objek, manakala kaedah bukan statik memerlukan contoh objek tertentu untuk dibuat terlebih dahulu .
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Ralat maut: Menggunakan $ini apabila tidak dalam konteks objek' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!