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
390 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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal