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
DDDoriginal
2024-11-02 07:00:30366parcourir

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:
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