RFC : Skipping optional parameters for functions
Ce n’est pas tout à fait la première fois que le sujet était évoqué, mais avec PHP 7 en approche, voici une RFC qui est revenue sur le devant de la scène : Skipping optional parameters for functions.
- URL : https://wiki.php.net/rfc/skipparams
- Version cible : PHP 7
Aujourd’hui, lorsque l’on souhaite appeler une fonction qui accepte des paramètres optionnels, il est impératif de spécifier la valeur de tous les paramètres jusqu’au dernier qui nous intéresse — y compris si nous voulons utiliser la valeur par défaut des précédents.
Par exemple, considérons une fonction définie ainsi :
Pour appeler cette fonction en passant true
en dernier paramètre, en conservant la valeur par défaut pour le second, nous devons écrire ceci :
Nous devons ainsi, lors de l’appel, passer la valeur "world"
en second paramètre, alors que ce que nous voulions réellement faire était passer la valeur par défaut.
Cette RFC vise à répondre à cette problématique en permettant l’usage du mot-clef default
à la place du passage de paramètres optionnels, pour ceux dont nous souhaitons utiliser la valeur par défaut.
L’exemple d’appel reproduit plus haut deviendrait donc :
Les votes pour cette RFC ont été ouverts le 08 février 2015 et clôturés le 21 février 2015.
Nous avons exprimé notre avis, négatif, sur internals@
: principalement, l’approche proposée nous semblait trop bidouille et nous préférerions bénéficier de paramètres nommés, même si ceux-ci n’arriveront probablement pas pour PHP 7.0 (et que la RFC citée ici n’était pas incompatible avec cette idée).
Cette RFC a finalement été rejetée, avec 17 votes « pour » et 27 votes « contre ».