Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonctions : plusieurs variables non passees

4 réponses
Avatar
messian_nospam
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

4 réponses

Avatar
Mr Prout !
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,)

???




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 !

Avatar
Thierry
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
Avatar
Stan
"JF Messian" a écrit dans le message
de news:1i0ttsd.1l6wi3z1he5ewuN%
J'ai une fonction avec 3 variables :

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

Avatar
offworld
function essai($var1, $var2=NULL, $var3=NULL)