Évitement strict des normes : remplacement des paramètres de méthode
En PHP, des normes strictes imposent le respect de règles de codage prédéfinies pour garantir la fiabilité du code. L’une de ces normes interdit de remplacer les paramètres de la méthode. Considérez le code suivant :
<code class="php">class Foo { public function bar(array $bar) {} } class Baz extends Foo { public function bar($bar) {} }</code>
Ici, la méthode de substitution dans Baz (avec un seul paramètre) diffère en signature de la méthode d'origine dans Foo (qui prend un tableau comme argument). En conséquence, PHP déclenche un avertissement standard strict.
Cette violation découle du principe de substitution de Liskov (LSP), une règle de conception POO stipulant qu'un sous-type (Baz) peut remplacer de manière transparente son supertype (Foo) sans altérer comportement du programme. Dans les langages à typage fort, modifier les signatures de méthode dans un sous-type créerait une surcharge de méthode, mais dans PHP faiblement typé, une telle distinction est impossible.
Pour garantir la conformité LSP et éviter de modifier le comportement de la méthode, des normes strictes empêchent la modification de la méthode. signatures dans les méthodes de remplacement. Cet avertissement sert de rappel pour maintenir la cohérence entre les méthodes des classes parent et enfant, évitant ainsi les bogues potentiels dus à des incompatibilités de signature de méthode lors de l'invocation de la méthode.
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!