Yop les gens,
dans la doc de PHP on peut lire
La classe implémentant l'interface doit utiliser exactement les mêmes signatures de méthodes que celles définies dans l'interface. Dans le cas contraire, une erreur fatale sera émise.
ce qui semble plutôt logique.
Pourtant il semble que si la signature est modifiée par l'ajout d'un paramètre optionnel alors tout baigne. Pour preuve ces codes
1 2 3 4 5 6 | <?php interface PackageInterface { public function getUrl($path); } |
1 2 3 4 5 6 7 8 9 | <?php class ImageUrlGenerator implements PackageInterface { public function getUrl($uri, array $options = array()) { // ... } } |
qui n'affichent aucune erreur ni dans mon IDE (PhpStorm 8.0.3), ni à l'exécution (PHP 5.6.4).
Ce cas est-il traité quelque part dans la doc' ? Puis-je me baser dessus pour la suite des développements ?
Merci d'avance !
+0
-0