Résolution de méthode surchargée et arguments nuls
Le processus de sélection de la bonne méthode surchargée lorsqu'un argument nul est fourni suit une séquence d'étapes spécifique.
1. Accessibilité :
Initialement, le compilateur filtre toutes les méthodes surchargées inaccessibles en fonction des droits d'accès du code appelant.
2. Applicabilité :
Ensuite, il identifie les méthodes applicables. Une méthode est considérée comme applicable si chaque paramètre formel a un argument correspondant qui peut être implicitement converti. Les valeurs nulles ne peuvent pas être implicitement converties en types valeur (comme int
ou Point
), éliminant ainsi ces méthodes de la considération.
3. params
Gestion des méthodes :
Les méthodes utilisant le mot-clé params
peuvent être invoquées soit développées (en traitant le tableau comme des arguments individuels), soit non développées (en le traitant comme un seul argument de tableau). Si les deux sont applicables, la forme développée est préférée et la version non développée est rejetée.
4. Sélection du meilleur match :
Enfin, le compilateur compare les méthodes applicables restantes pour trouver la correspondance la plus spécifique. Une méthode avec un type de paramètre plus spécialisé est considérée comme plus spécifique qu'une méthode avec un type plus général.
Dans les scénarios ambigus (plusieurs méthodes tout aussi spécifiques), comme dans l'exemple fourni, le compilateur ne peut pas déterminer le meilleur candidat, ce qui entraîne une erreur de compilation. Le type de paramètre object
est moins spécifique que object[]
et string
, ce qui conduit à cette ambiguïté.
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!