Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Kelas Kanak-kanak PHP Saya Melemparkan Ralat 'Pengisytiharan childClass::customMethod() harus serasi dengan parentClass::customMethod()'?

Mengapa Kelas Kanak-kanak PHP Saya Melemparkan Ralat 'Pengisytiharan childClass::customMethod() harus serasi dengan parentClass::customMethod()'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-13 20:02:15450semak imbas

Why Does My PHP Child Class Throw a

Ralat Keserasian Pengisytiharan Kaedah PHP

Mesej ralat "Strict Standards: Declaration of childClass::customMethod() harus serasi dengan parentClass::customMethod()" berlaku dalam PHP apabila kaedah yang diisytiharkan dalam kelas kanak-kanak ialah tidak serasi dengan kaedah yang sepadan dalam kelas induk.

Untuk menentukan punca ralat ini, adalah penting untuk memahami apa yang membentuk "keserasian" antara dua kaedah:

  • Nombor dan Jenis Argumen: Kaedah kelas anak mesti mempunyai nombor dan jenis argumen yang sama dengan kaedah kelas induk. Contohnya, jika kaedah kelas induk mengambil dua argumen integer, kaedah kelas anak tidak boleh mengambil satu integer dan satu argumen rentetan.
  • Jenis Pulangan: Jenis pulangan kaedah kelas anak mesti sama ada sama atau subjenis jenis pulangan kaedah kelas induk. Contohnya, jika kaedah kelas induk mengembalikan boolean, kaedah kelas anak juga boleh mengembalikan boolean, tetapi ia tidak boleh mengembalikan integer.
  • Tahap Akses: Tahap akses kanak-kanak kaedah kelas mestilah sama atau kurang ketat daripada tahap capaian kaedah kelas induk. Dalam erti kata lain, kaedah yang dilindungi dalam kelas induk tidak boleh dijadikan peribadi dalam kelas anak.

Untuk menyelesaikan ralat ini, pastikan kaedah kelas anak memenuhi garis panduan keserasian ini. Untuk mendapatkan maklumat lebih terperinci tentang keserasian pengisytiharan kaedah PHP, rujuk dokumentasi rasmi.

Atas ialah kandungan terperinci Mengapa Kelas Kanak-kanak PHP Saya Melemparkan Ralat 'Pengisytiharan childClass::customMethod() harus serasi dengan parentClass::customMethod()'?. 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