Si j'ai une fonction comme ceci: et je veux $ C code> pour supposer sa valeur par défaut, mais doit définir
$ d $ d < / Code>, comment puis-je continuer à faire cet appel dans PHP? p> p>
5 Réponses :
Je ne crois pas que vous puissiez le faire dans PHP. P>
php ne peut pas faire cela, malheureusement. Vous pouvez contourner cela en vérifiant pour NULL. Par exemple: alors vous appelleriez la fonction comme ceci: p> Non, ce n'est pas vraiment joli, mais ce n'est pas vraiment jolie, mais ça fait le travail. Si vous vous sentez vraiment aventureux, vous pourriez passer dans un tableau associatif au lieu des deux derniers arguments, mais je pense que c'est bien plus de travail que vous le souhaitez. P> p>
+1 beau travail autour. Je laisserais probablement la partie $ = 'foo' dans la signature car la vérification null traite la valeur par défaut.
True, mais si vous voulez omettre les deux $ C code> et
$ d code>? Il lancerait maintenant une erreur car la fonction a 3 arguments requis.
Le problème est que mes fonctions ont plus de 5 Vares. Ceci est pour un système d'éventuelles personnes futures qui ne sont pas prises PHP Savvy pour manipuler le code en définissant des variables spécifiques.
Comme je l'ai dit, il n'y a pas d'autre moyen de le faire. Vous pourriez, comme je l'ai mentionné, transmettez une matrice associative dans la fonction et définissez simplement toutes les valeurs non définies sur leurs valeurs par défaut. Mais sinon, tu n'as pas de chance; Pardon.
J'utilise syntaxtique et c'est génial github.com/topclauy/php-syntatactique
Les tableaux associatifs ne sont pas si mauvais ici, surtout lorsque la liste des arguments commence à devenir plus grande: Si vous vouliez explicitement faire certains d'entre eux requis, vous pouvez les mettre à l'avant: P> function abc($a, $b, $args = array()) {
}
Et si vous mettez tous vos paramètres dans un objet d'argument, puis analysez cela?