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

Eléphant du PHP | 57 Messages

04 mars 2006, 11:24

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.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

04 mars 2006, 11:52

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");

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

04 mars 2006, 11:56

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 57 Messages

04 mars 2006, 12:52

Merci pour ces explications.

Je vais donc garder mes 3 paramètres.

ViPHP
fab
ViPHP | 2657 Messages

04 mars 2006, 13:51

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 :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }