8795 sujets

Développement web côté serveur, CMS

Bonjour,

je me pose une petite question au niveau des fonctions en PHP.

Quand je créée une fonction je lui donne des arguments qu'on peut remplir


function My_func ($arg01, $arg02, $arg03) {
    $all = $arg01 + $arg02 + $arg03;
}


Ce que je me demande c'est que par exemple si quand j'appelle ma fonction comme ceci :


My_func(1,4);


il va me retourner une erreur parce que je n'ais pas fourni $arg03...

Mais si par exemple ce $arg03 n'était pas obligatoire et que il ne faut pas toujours le mettre...

Comment puis je faire pour avoir ce resultat ?

Merci d'avance

++
Modifié par Dib258 (05 May 2005 - 12:13)
Il suffit de donner une valeur aux arguments pour qu'ils soient facultatifs.
Par exemple :
function truc($var = 'truc') {
    return $var;
}
on pourra l'utiliser :
echo truc();
pour afficher "truc"
ou echo('machin');
...pour afficher "machin" Smiley langue

Une valeur par défaut couramment utilisée est NULL, c'est un peu à ça que ça sert Smiley smile (et de toutes façons c'est totalement logique avec NULL car pour vérifier si l'argument est remplis ou pas dans la fonction, on utiliserais la fonction "isset" et rien d'autre)
Sinon bien sûr, il faut s'adapter aux cas, NULL est à utiliser... par défaut.
Modifié par Elentar (05 May 2005 - 11:59)
salut,

Il y a deux solutions :
function My_func ($arg01, $arg02, $arg03='') {
     $all = $arg01 + $arg02;
     if ($arg03!='') {
          $all += $arg03;
     }
}

//Appel de la fonction sans le troisieme argument:
My_func(5, 1) ;


La seconde solution est d'utilise les fonctions de gestion d'argument.
voir func_get_arg et func-num-args