Maison > développement back-end > tutoriel php > Pourquoi est-ce que j'obtiens l'erreur « La déclaration des méthodes doit être compatible avec les méthodes parent » en PHP ?

Pourquoi est-ce que j'obtiens l'erreur « La déclaration des méthodes doit être compatible avec les méthodes parent » en PHP ?

DDD
Libérer: 2024-11-02 07:00:30
original
449 Les gens l'ont consulté

Why Do I Get the

Comprendre l'erreur « La déclaration des méthodes doit être compatible avec les méthodes parent » en PHP

Lorsque vous travaillez avec la programmation orientée objet en PHP, vous peut rencontrer l'erreur "Normes strictes : la déclaration de childClass::customMethod() doit être compatible avec celle de parentClass::customMethod()." Cette erreur indique que la déclaration d'une méthode dans une classe enfant doit s'aligner sur la déclaration de la méthode correspondante dans sa classe parent.

Causes possibles :

L'erreur peut se produire pour deux raisons principales :

  • Inadéquation des arguments : La méthode de la classe enfant a des paramètres d'entrée (arguments) différents par rapport à la méthode parent. Cela inclut les différences dans le nombre, le type ou l'ordre des arguments.
  • Différence de niveau d'accès : Le niveau d'accès (public, privé ou protégé) de la méthode dans la classe enfant n'est pas le même que celui de la méthode parent. Par exemple, une méthode déclarée comme « publique » dans la classe parent ne peut pas être déclarée comme « privée » dans la classe enfant.

Déclaration de méthode compatible :

Pour garantir la compatibilité, la déclaration d'une méthode dans la classe enfant doit correspondre à la déclaration dans la classe parent dans les aspects suivants :

  • Paramètres d'entrée (numéro, type, ordre)
  • Type de retour
  • Niveau d'accès

Documentation et ressources :

  • [Manuel PHP officiel : Surcharge de méthodes](https : //www.php.net/manual/en/lingual.oop5.overloading.php)
  • [PHPStan : Compatibilité des méthodes de niveau de base](https://phpstan.org/user-guide/rules/methods /basic-method-compatibility)
  • [Stack Overflow : Que signifie la "Déclaration de la méthode class::method doit être compatible avec celle de parentClass::method" ?](https://stackoverflow.com /questions/2194559/qu'est-ce-que-la-déclaration-de-méthode-classe-méthode-devrait-être-compatible-avec-cela)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal