Passage d'arguments par référence
<<<
Valeur par défaut des arguments Nombre d'arguments variable
>>>

4.8.2 Les arguments de fonction
4.8 Les fonctions
4 Référence du langage
 Manuel PHP

Passage d'arguments par référence
->Valeur par défaut des arguments
Nombre d'arguments variable

4.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.html 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.

<< Valeur par défaut des arguments >>
Passage d'arguments par référence Les arguments de fonction Nombre d'arguments variable