Page 1 sur 1

comment agréger 3 paramètres dans une fonction ?

Posté : 04 mars 2006, 11:24
par Neophyte
Bonjour,

 
//code qui fonctionne...
//titre pour ligne : paramètre couleur rouge (header)
 $p_df_8=255;
 $p_df_9=0;
 $p_df_10=0;

  $this->SetDrawColor($p_df_8,$p_df_9,$p_df_10); //red           

Je souhaiterais regrouper dans un seul paramètre, puis intégrer le tout dans la fonction (SetDrawColor de fpdf), mais est-ce possible ?
//ne fonctionne pas !
$p="255,0,0";
$this->SetDrawColor($p); //red         
Merci.

Posté : 04 mars 2006, 11:52
par Truc
Salut,

Si la fonction a été définie avec 3 paramètres obligatoires il faut lui fournir le nombre exact.

exemple 1:
fonction($var1,$var2) // tous les paramètres sont obligatoires lors de l'appel
//appel
fonction("truc","machin");
exemple 2:
fonction($var1,$var2="machin") // seul le 1er paramètre est obligatoire lors de l'appel
//appel
fonction("truc","bidule");
//ou
fonction("truc");

Posté : 04 mars 2006, 11:56
par Cyrano
Tu ne peux pas :
function SetDrawColor($r,$g=-1,$b=-1)
La méthode de classe attend trois paramètres, tu ne peux pas les combiner en un seule.

Si tu veux absolument faire ça, tu dois créer une nouvelle méthode SetDrawColorPerso recevant un paramètre unique mais tu devras décomposer le paramètre en trois éléments distincts dans ta méthode : tu ne seras pas beaucoup plus avancé :-k

Posté : 04 mars 2006, 12:52
par Neophyte
Merci pour ces explications.

Je vais donc garder mes 3 paramètres.

Posté : 04 mars 2006, 13:51
par fab
ou sinon tu peux vérifier combien d'arguments sont passés si il y a en a qu'un tu fais ton truc où cet argument contient un code rbg séparé apr des virgules.
pour compter le nombre d'arguments : http://fr.php.net/manual/fr/function.func-get-args.php

Mais attention avec cette "astuce", ta méthode ne contiendra pas directement( cf :doc )
Et il faudra récupérer ensuite les arguments dans un tableau grâce à ;: http://fr.php.net/manual/fr/function.func-num-args.php

Voila voila :)