Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membetulkan Ralat PHP \'Panggilan Kaedah Bukan Statik Secara Statik\'?
Apabila cuba mengakses kaedah bukan statik sebagai fungsi statik, PHP menjana mesej ralat Standard ketat: Bukan- kaedah statik tidak boleh dipanggil statik. Isu ini sering timbul apabila kaedah kelas digunakan tanpa membuat seketika objek kelas.
1. Nyatakan Objek Kelas:
Untuk menyelesaikan isu ini, anda perlu mencipta tika kelas sebelum cuba memanggil kaedahnya. Contohnya, bukannya:
Page::getInstanceByName($page);
Gunakan:
$pageInstance = new Page(); $pageInstance->getInstanceByName($page);
2. Tandakan Kaedah sebagai Statik:
Jika anda berhasrat untuk memanggil kaedah tanpa membuat seketika kelas, anda boleh mentakrifkan kaedah sebagai statik dalam kelas. Contohnya:
class Page { public static function getInstanceByName($name) { // method implementation } }
Ini membolehkan anda memanggil kaedah terus menggunakan nama kelas:
Page::getInstanceByName($page);
1. Kebolehujian:
Perhatikan bahawa kaedah statik dan tunggal boleh menghalang kebolehujian. Anda mungkin ingin mempertimbangkan corak reka bentuk alternatif untuk meningkatkan keupayaan ujian.
2. Pengoptimuman Pembina:
Elakkan meletakkan tugas yang berlebihan dalam pembina. Pembina hanya perlu mengendalikan menetapkan objek ke dalam keadaan yang sah. Pertimbangkan untuk menyuntik kebergantungan data daripada mengambilnya terus daripada pembina. Ingat bahawa pembina tidak boleh mengembalikan nilai dan sentiasa mengembalikan tidak sah.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat PHP \'Panggilan Kaedah Bukan Statik Secara Statik\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!