Rendre des arguments de fonction facultatif

Eléphant du PHP | 94 Messages

09 sept. 2006, 22:43

Bonjour

Je viens de finaliser une de mes premières fonctions.
Celle ci peut recevoir 5 arguments.
Cependant, j'aimerais pouvoir dans certains cas en utiliser moins (de 1 à 4).

Pour le moment, quand j'appelle ma fonction sans tous les arguments, j'ai le message
Missing argument .... bla bla bla
.

Est il possible de rendre des arguments facultatifs ?

Quetions subsidiaire : quand je fais mes tests sous MAMP, je n'ai pas de message d'erreur. Ce n'est que quand je mets en ligne que je vois les Missing Arugement. Comment faire pour que MAMP me retourne également ces messages ? Cela m'évitera les surprises !

Merci d'avance
rspir

Eléphant du PHP | 332 Messages

09 sept. 2006, 23:32

tu peux rendre des arguments facultatifs en leur donnant une valeur par défaut

function ma_function ($arg1, $arg2, $arg3=0, $arg4='french') {
...
}

ma_function ($a, $b, 5, 'english');
ma_function ($a, $b);

http://www.php.net/manual/fr/functions.arguments.php

Sinon, tu peux également travailler avec la fonction extract qui permet de ne passer qu'un seul argument (un tableau associatif) que tu décomposes ensuite dans la fonction

function ma_fonction2 ($params) {
extract($params);
echo "$couleur $taille $forme";
}

ma_fonction2 (array("couleur" => "bleu",
                   "taille"  => "moyen",
                   "forme"  => "sphere"));