Rumah > Artikel > pembangunan bahagian belakang > Cara Menyelesaikan Ralat PHP: \'Kaedah Bukan Statik Dipanggil Secara Statik\'?
Ralat PHP: Kaedah Bukan Statik Dipanggil Secara Statik
Mesej ralat "Standard ketat: Kaedah bukan statik Halaman::getInstanceByName() tidak boleh dipanggil secara statik" dalam PHP menunjukkan bahawa anda cuba memanggil kaedah bukan statik seolah-olah ia statik.
Memahami Kaedah Statik
Kaedah statik ialah kaedah kelas yang boleh dipanggil tanpa instantiate objek kelas. Mereka diisytiharkan menggunakan kata kunci statik. Kaedah statik biasanya digunakan untuk fungsi utiliti atau untuk mengakses sifat kelas.
Membetulkan Ralat
Dalam kod yang disediakan, kaedah getInstanceByName() dalam kelas Halaman ialah tidak diisytiharkan sebagai statik. Untuk membetulkan ralat, tambahkan kata kunci statik pada pengisytiharan kaedah:
public static function getInstanceByName($name='') { // Method implementation... }
Selepas membuat perubahan ini, anda sepatutnya boleh memanggil getInstanceByName() tanpa menerima ralat.
Pertimbangan Kebolehujian
Walaupun kaedah statik boleh menjadi mudah, adalah penting untuk diperhatikan bahawa mereka boleh membuat ujian unit lebih sukar. Ini kerana kaedah statik tidak terikat dengan kejadian tertentu kelas dan oleh itu tidak boleh dipermainkan atau diuji dengan mudah secara berasingan.
Menyoal dalam Pembina
Ia juga Perlu dinyatakan bahawa pembina kelas Halaman mengandungi pertanyaan yang berlebihan, yang boleh memberi kesan kepada prestasi dan kebolehbacaan kod. Pertimbangkan untuk memfaktorkan semula kod untuk mengalihkan pertanyaan kepada kaedah yang berasingan atau menyuntik data yang diperlukan melalui suntikan pergantungan.
Atas ialah kandungan terperinci Cara Menyelesaikan Ralat PHP: \'Kaedah Bukan Statik Dipanggil Secara Statik\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!