Keserasian dalam Pengisytiharan Kaedah PHP
Dalam PHP, ralat "Strict Standards: Declaration of childClass::customMethod() hendaklah serasi dengan that of parentClass::customMethod()" menunjukkan percanggahan antara pengisytiharan a kaedah dalam kelas kanak-kanak dan kaedah induknya.
Punca Kemungkinan:
Ralat berlaku apabila kaedah anak mempunyai sama ada:
- Argumen berbeza: Nombor, susunan atau jenis data argumen kaedah harus sepadan dengan argumen induk kaedah.
-
Tahap akses yang berbeza: Tahap akses (awam, persendirian atau dilindungi) kaedah anak mestilah sama atau kurang ketat daripada kaedah induk.
Mencari Maklumat Keserasian:
PHP menggunakan peraturan berikut untuk mentakrifkan keserasian kaedah:
-
Argumen: Pengisytiharan hujah mesti sepadan dengan kedua-dua nombor dan jenis.
-
Tahap akses: Akses kaedah anak boleh lebih ketat (mis., awam kepada peribadi) tetapi tidak kurang menyekat (mis., peribadi kepada awam).
-
Jenis pemulangan: Jenis pemulangan kaedah anak boleh menjadi kovarian, bermakna ia boleh mengembalikan subkelas jenis pemulangan induk.
Dokumentasi tambahan dan contoh mengenai keserasian kaedah boleh didapati dalam halaman Manual PHP berikut:
- [Melebihi muatan dan Warisan](https://www.php.net/manual/en/language.oop5.overloading.php)
- [Keterlihatan Kaedah](https://www.php.net/manual/en/ language.oop5.visibility.php)
- [Kovarian dan Contravariance](https://www.php.net/manual/en/language.oop5.variance.php)
Atas ialah kandungan terperinci Mengapa PHP Melemparkan 'Strict Standards: Declaration of childClass::customMethod() Harus Serasi dengan parentClass::customMethod()'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!