Afficher un message
Vieux 06/07/2007, 17h15   #2
Thierry
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Fonctions : plusieurs variables non passees

bonjour,

je vois au moins 2 solutions à ton problème:

//-----------------------------------------------------------------------
//première solution
define('VALEUR_PAR_DEFAUT', 'srgfdgfdsgfdgd');
function foo($v1 = VALEUR_PAR_DEFAUT, $v2 = VALEUR_PAR_DEFAUT, $v3 =
VALEUR_PAR_DEFAUT) {
if ( $v1 != VALEUR_PAR_DEFAUT) {
....
}
if ( $v2 != VALEUR_PAR_DEFAUT) {
....
}
if ( $v3 != VALEUR_PAR_DEFAUT) {
....
}
}

dans cette première solution la fonction foo doit toujours être appelée avec
3 paramètres, les paramètres
inactifs valant VALEUR_PAR_DEFAUT.
Plus exactement les appels suivant sont corrects
foo(1);
foo(1,2);
foo(1,2,3);
les appels suivants sont incorrects
foo(,2,); => foo(VALEUR_PAR_DEFAUT, 2, VALEUR_PAR_DEFAUT);
foo(,,3); => foo(VALEUR_PAR_DEFAUT, VALEUR_PAR_DEFAUT, 3);
foo(,2,3); => foo(VALEUR_PAR_DEFAUT, 2, 3);
foo(1,,3); => foo(1, VALEUR_PAR_DEFAUT, 3);


//-----------------------------------------------------------------------
//deuxième solution
function foo ($vars = array() ) {
if ( isset($vars['cle_1'])) {
....
}
if ( isset($vars['cle_2'])) {
....
}
if ( isset($vars['cle_3'])) {
....
}
}

avec un appel du type
foo(array(
'cle_1' => 1,
'cle_3' => 3
));

amicalement

thierry
  Réponse avec citation
 
Page generated in 0,04829 seconds with 9 queries