Maison > développement back-end > tutoriel php > Pourquoi PHP impose-t-il des « Normes strictes : la déclaration de childClass::customMethod() doit être compatible avec celle de parentClass::customMethod() » ?

Pourquoi PHP impose-t-il des « Normes strictes : la déclaration de childClass::customMethod() doit être compatible avec celle de parentClass::customMethod() » ?

Linda Hamilton
Libérer: 2024-12-09 21:40:15
original
472 Les gens l'ont consulté

Why Does PHP Throw

Compatibilité dans les déclarations de méthodes PHP

En PHP, l'erreur « Normes strictes : Déclaration de childClass::customMethod() doit être compatible avec celui de parentClass::customMethod()" indique un écart entre la déclaration d'une méthode dans une classe enfant et celle de son parent méthode.

Causes possibles :

L'erreur se produit lorsque la méthode enfant a soit :

  • Arguments différents : Le nombre, l'ordre ou les types de données des arguments de la méthode doivent correspondre à ceux du parent méthode.
  • Niveau d'accès différent : Le niveau d'accès (public, privé ou protégé) de la méthode enfant doit être identique ou moins restrictif que celui de la méthode parent.

Recherche d'informations de compatibilité :

PHP utilise les règles suivantes pour définir la méthode compatibilité :

  • Arguments : Les déclarations d'arguments doivent correspondre à la fois en nombre et en type.
  • Niveau d'accès : L'accès à la méthode enfant peut être plus restrictif (par exemple, public à privé) mais non moins restrictif (par exemple, privé à privé) public).
  • Types de retour : Le type de retour de la méthode enfant peut être covariant, ce qui signifie qu'il peut renvoyer une sous-classe du type de retour parent.

Documentation supplémentaire et des exemples de compatibilité des méthodes peuvent être trouvés dans les pages suivantes du manuel PHP :

  • [Surcharge et Héritage](https://www.php.net/manual/en/langue.oop5.overloading.php)
  • [Visibilité de la méthode](https://www.php.net/manual/en/ language.oop5.visibility.php)
  • [Covariance et Contravariance](https://www.php.net/manual/en/langue.oop5.variance.php)

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