Dans le manuel PHP, pour montrer la syntaxe des fonctions avec des paramètres optionnels, ils utilisent des crochets autour de chaque ensemble de paramètres optionnels dépendants. Par exemple, pour la date()
fonction, le manuel lit:
string date ( string $format [, int $timestamp = time() ] )
Où $timestamp
est un paramètre facultatif, et lorsqu'il est laissé vide, il prend par défaut la time()
valeur de retour de la fonction.
Comment créer des paramètres optionnels comme celui-ci lors de la définition d'une fonction personnalisée en PHP?
function dosomething($var1, $var2, $optionalValue = null)
J'ai trouvé cette meilleure option.Si vous avez cependant besoin de cette fonctionnalité:
En supposant que ce
$bar
n'est pas censé être un booléen, bien sûr.la source
$bar === false
- c'est une action qui doit être effectuée lorsque la valeur par$bar
défaut estfalse
. Cela évitera une action incorrecte si elle0
est transmise, donc cela fonctionne - SAUF un booléen est nécessaire. Comme l'a dit Kzqai, une solution plus générale consiste à utiliser$bar = null
, car cela peut également être utilisé lorsque les valeurs de $ bar sont booléennes. Le test devient alorsif (is_null($bar))
ouif ($bar === null)
.Quelques notes que j'ai également trouvées utiles:
Gardez vos valeurs par défaut sur le côté droit.
La valeur par défaut de l'argument doit être une expression constante. Cela ne peut pas être une variable ou un appel de fonction.
la source
Donnez à l'argument optionnel une valeur par défaut.
la source
La fonction de date serait définie quelque chose comme ceci:
Habituellement, vous mettriez la valeur par défaut comme ceci:
Cependant, seuls les littéraux sont des arguments par défaut valides, c'est pourquoi j'ai utilisé
null
comme argument par défaut dans le premier exemple, non$timestamp = time()
, et l' ai combiné avec une vérification nulle. Les littéraux incluent les tableaux (array()
ou[]
), les booléens, les nombres, les chaînes etnull
.la source
Si vous ne savez pas combien d'attributs doivent être traités, vous pouvez utiliser la liste d'arguments variadique token (
...
) introduite dans PHP 5.6 ( voir la documentation complète ici ).Syntaxe:
Par exemple:
Comme vous pouvez le voir, ce jeton transforme fondamentalement tous les paramètres en un tableau, que vous pouvez traiter comme vous le souhaitez.
la source