Ralat Maut PHP: Menggunakan $this Apabila Tiada dalam Konteks Objek
Masalah:
Apabila cuba mengakses $this pembolehubah dalam kaedah bukan statik kelas dalam PHP, ralat berikut berlaku: "Menggunakan $ini apabila tidak dalam konteks objek."
Jawapan:
Ralat ini timbul apabila cuba mengakses pembolehubah $this di luar tika objek. Pembolehubah $this merujuk kepada objek semasa dan hanya boleh digunakan dalam konteks objek yang dibuat seketika.
Penyelesaian:
Untuk menyelesaikan ralat ini, nyatakan objek daripada kelas dan akses kaedah melalui contoh objek. Sebagai contoh:
$object = new MyClass(); $object->myMethod();
Sebagai alternatif, jika kaedah statik, anda boleh mengaksesnya secara langsung menggunakan nama kelas, tanpa membuat seketika objek:
MyClass::staticMethod();
Contoh:
Dalam fail class.php anda, pastikan kaedah foobarfunc() tidak ditakrifkan sebagai kaedah statik. Jika ia tidak statik, anda mesti membuat instantiate objek kelas foobar sebelum mengakses kaedah:
$foobar = new foobar(); $foobar->foobarfunc();
Jika anda berhasrat untuk mencipta kaedah statik, pastikan kaedah itu diisytiharkan sebagai statik dan $ pembolehubah foo diisytiharkan sebagai statik:
class foobar { public static $foo; public static function foobarfunc() { return self::$foo; } } foobar::foobarfunc();
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Maut PHP 'Menggunakan $ini Apabila Tidak Dalam Konteks Objek'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!