Pas compatible avec moins d’arguments
<?php
interface i {
function foo($a) ;
}
interface j extends i {
function foo($a, $b = 3);
}
interface k extends j {
function foo($a = 4, $b = 3);
}
interface l extends k {
function foo();
}
Une méthode est compatible avec la version de son parent lorsqu’elle a au moins le même nombre d’arguments. Cela est valable avec les classes, mais aussi avec les interfaces.
Une méthode enfant est compatible avec son parent lors de l’ajout d’un nouvel argument, tant que cet argument possède une valeur par défaut.
Un autre enfant peut également être compatible en ajoutant une valeur par défaut à l’argument existant. À ce stade, appeler la méthode sans aucun argument devient un appel valide.
Cependant, il n’est pas possible de réécrire la méthode sans arguments, car cela serait incompatible avec la définition de la méthode du parent, même s’il est toujours possible d’appeler les deux versions de la même façon.
See Also
- compatible, but not so much [Try me]
PHP Error Messages
PHP Features
Last updated: 11 October 2026