Rumah >pembangunan bahagian belakang >tutorial php >Cara Menyelesaikan Ralat PHP: \'Kaedah Bukan Statik Dipanggil Secara Statik\'?

Cara Menyelesaikan Ralat PHP: \'Kaedah Bukan Statik Dipanggil Secara Statik\'?

DDD
DDDasal
2024-11-24 00:36:16664semak imbas

How to Resolve the PHP Error:

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn