Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Saya Mendapat \'Piawaian Ketat: Kaedah bukan statik tidak boleh dipanggil secara statik\' dalam PHP?
Invokasi Kaedah Bukan Statik
Ralat yang dihadapi, "Mesej ralat Standard yang ketat: Kaedah bukan statik tidak boleh dipanggil secara statik," berlaku apabila kaedah bukan statik digunakan seolah-olah kaedah statik.
Dalam kod PHP yang anda berikan, isu terletak dalam kelas Halaman. Kaedah getInstanceByName() dan getInstanceBySpecial() ditakrifkan sebagai kaedah bukan statik, yang bermaksud kaedah tersebut mesti digunakan menggunakan contoh kelas Halaman. Walau bagaimanapun, anda cuba memanggilnya sebagai kaedah statik, tanpa contoh kelas Halaman.
Penyelesaian
Untuk menyelesaikan isu ini, anda perlu membuat kaedah statik dengan menambahkan kata kunci statik pada pengisytiharan mereka. Tukar:
function getInstanceByName($name='') {
kepada:
public static function getInstanceByName($name='') {
Begitu juga, ubah suai kaedah getInstanceBySpecial() supaya juga statik.
Setelah anda membuat perubahan ini, anda harus boleh memanggil getInstanceByName() dan getInstanceBySpecial() sebagai kaedah statik, tanpa mendapat ralat.
Atas ialah kandungan terperinci Mengapa Saya Mendapat \'Piawaian Ketat: Kaedah bukan statik tidak boleh dipanggil secara statik\' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!