Discussion:
Fonctions : plusieurs variables non passees
(trop ancien pour répondre)
JF Messian
2007-07-06 13:14:55 UTC
Permalink
J'ai une fonction avec 3 variables :

function essai ($var1,$var2,$var3) {

....

}

Mon problème est que dans l'appel de la fonction $var2 et $var3 n'existe
pas forcement...

Je peux avoir quelque chose comme ça :

function essai ($var1,$var2,$var3) {

if (isset($var2)) {
...
}

if (isset($var3)) {
...
}

}

et l'appeler par exemple comme ça :

essai (1,2,3) ou essai (1,,) ou essai (1,,3) ou essai (1,2,)

???
--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com
Mr Prout !
2007-07-06 14:18:56 UTC
Permalink
Post by JF Messian
function essai ($var1,$var2,$var3) {
....
}
Mon problème est que dans l'appel de la fonction $var2 et $var3 n'existe
pas forcement...
function essai ($var1,$var2,$var3) {
if (isset($var2)) {
...
}
if (isset($var3)) {
...
}
}
essai (1,2,3) ou essai (1,,) ou essai (1,,3) ou essai (1,2,)
???
function essai ($var1, $var2=NULL, $var3=NULL) {
/* teste ici la valeur de $var2 et $var3, avec empty() par
exemple */
}

et tu peux ainsi appeler ta fonction parmi l'une des 3 possibilités
suivantes :

1) essai(1);
2) essai(1, 2);
3) essai(1, 2, 3);

++

Mr Prout !
Thierry
2007-07-06 16:15:39 UTC
Permalink
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
Stan
2007-07-06 16:15:39 UTC
Permalink
Post by JF Messian
function essai ($var1,$var2,$var3) {
....
}
Regardez dans la doc les fonctions : func_num_args(), func_get_arg() et
func_get_args(),
vous devriez trouver votre bonheur...

--
-Stan
offworld
2007-07-06 16:15:40 UTC
Permalink
function essai($var1, $var2=NULL, $var3=NULL)

Continuer la lecture sur narkive:
Loading...