Le 25/06/2012 01:19, Olivier Miakinen a ᅵcrit :
> Bonjour,
>
> Le 24/06/2012 17:54, Y a Personne a ᅵcrit :
>>
>> me suis sans doute mal exprimᅵ.
>>
>> La fonction maFonction() n'a pas de paramᅵtre. si je lui en passe ok,
>> j'arrive ᅵ les rᅵcupᅵrer (mᅵme si le nombre est variable) car je sais
>> combien de paramᅵtre je lui passe et que les variable sont en dur. ex :
>> maFonction($var1, $var2);
>>
>> mais dans le cas d'un array qui comprend x donnᅵes (qui peut changer ᅵ
>> chaque fois).
>>
>> comment je peux mettre dans la fonction maFonction() chaque paramᅵtre ?
>>
>> pour qu'au final j'ai par ex :
>>
>> maFonction(array[0], array[1]);
>> ou
>> maFonction(array[0], array[1], array[2]);
>
> Tout d'abord, puisque tu as la maᅵtrise de la fonction maFonction(),
> l'idᅵal serait de permettre de lui passer un tableau en lieu et
> place des arguments en nombre variable.
>
> Par exemple, si le premier argument ne peut pas ᅵtre un tableau,
> tu fais :
> if (is_array(premier argument)) {
> lire les arguments dans le tableau
> } else {
> faire comme avant
> }
>
> Si ce n'est pas le cas, mais qu'une valeur ne peut jamais ᅵtre
> passᅵe comme premier argument (exemples : "", -1, NULL, etc.) tu
> peux mettre cette valeur particuliᅵre en premier argument et le
> tableau en deuxiᅵme argument.
>
> ************
>
> Supposons que rien de ce qui prᅵcᅵde ne t'agrᅵe. Alors voici une
> autre proposition. C'est moche, mais c'est tant pis pour toi...
>
> switch(count($a)) {
> case 0 : maFonction(); break;
> case 1 : maFonction($a[0]); break;
> case 2 : maFonction($a[0], $a[1]); break;
> case 3 : maFonction($a[0], $a[1], $a[2]); break;
> case 4 : maFonction($a[0], $a[1], $a[2], $a[3]); break;
> case 5 : maFonction($a[0], $a[1], $a[2], $a[3], $a[4]); break;
> default:
> echo "Au secours, programmeur, il me manque des 'case' !"; exit;
> }
>
> Et en encore plus moche, tu peux utiliser eval().
>
>
> Cordialement,
>
merci de ta rᅵponse.
j'ai effectivement pensᅵ un moment ᅵ faire comme ton dernier exemple
mais me suis retenu.
J'ai pendant la nuit retravaillᅵ ma fonction pour qu'elle accepte des
arguments array et/ou simple ce qui est effectivement la meilleur solution.
Mais je pensais qu'il y avait une astuce (prᅵvue par php) pour faire ce
que je voulais mais apparemment pas.
Merci de votre aide