|
5.8.2.2 Valeur par défaut des arguments
Vous pouvez définir comme en C++ des valeurs par
défaut pour les arguments de type scalaire :
| Valeur par défaut des arguments de fonctions |
<?php function servir_cafe ($type = "cappuccino") { return "Servir un $type.\n"; } echo servir_cafe(); echo servir_cafe("espresso"); ?>
|
L'exemple ci-dessus va afficher :
Servir un cappuccino.
Servir un espresso.
PHP vous autorise à utiliser des tableaux ainsi que le type spécial
NULL
comme valeur par défaut, par exemple :
| Utilisation de type non scalaire comme valeur par défaut |
<?php function servir_cafe($types = array("cappuccino"), $coffeeMaker = NULL) { $device = is_null($coffeeMaker) ? "les mains" : $coffeeMaker; return "Préparation d'une tasse de ".join(", ", $types)." avec $device.\n"; } echo servir_cafe(); echo servir_cafe(array("cappuccino", "lavazza"), "une cafetière"); ?>
|
La valeur par défaut d'un argument doit
obligatoirement être une constante, et ne peut être
ni une variable, ni un membre de classe, ni un appel de fonction.
Il est à noter que si vous utilisez des arguments avec
valeur par défaut avec d'autres sans valeur par défaut,
les premiers doivent être placés à la suite de tous les paramètres sans
valeur par défaut. Sinon, cela ne fonctionnera pas.
Considérons le code suivant :
| Les arguments à valeur par défaut doivent être en premier : erreur |
<?php function faireunyaourt ($type = "acidophilus", $flavour) { return "Préparer un bol de $type $flavour.\n"; }
echo faireunyaourt("framboise"); // ne fonctionne pas comme voulu ?>
|
L'exemple ci-dessus va afficher :
Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/php3test/functest.php on line 41
Préparer un bol de framboise.
Maintenant comparons l'exemple précédent avec
l'exemple suivant :
| Les arguments à valeur par défaut doivent être en premier : valide |
<?php function faireunyaourt ($flavour, $type = "acidophilus") { return "Préparer un bol de $type $flavour.\n"; }
echo faireunyaourt ("framboise"); // fonctionne comme voulu ?>
|
L'exemple ci-dessus va afficher :
Préparer un bol de acidophilus framboise.
| Note | |
Depuis PHP 5, les valeurs par défaut peuvent être passées par référence.
|
|