Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Saya Mendapat \'Piawaian Ketat: Kaedah bukan statik tidak boleh dipanggil secara statik\' dalam PHP?

Mengapa Saya Mendapat \'Piawaian Ketat: Kaedah bukan statik tidak boleh dipanggil secara statik\' dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-24 06:04:12800semak imbas

Why Am I Getting

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!

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