Page 1 sur 1

Methode et Signature

Posté : 02 juin 2010, 09:17
par the doctor
Est ce qu'une Méthode d'une classe ayant un paramètre peut être appelée avec deux paramètres voire plus?
sans pour autant faire appel a __call().
par ex:
classe maClasse
{
    public function maMethode($monParametre)
    {
        //code
    }
}

et aillieur faire par ex:
$monObj = new maClasse()
$monObjet->maMethode('Param1', 'Param2')

Re: Methode et Signature

Posté : 02 juin 2010, 09:24
par mojorisin
Vous pouvez le faire mais ce n'est pas très recommandé pour la maintenance applicative.

pour récuperer la liste des paramètres utilisez la fonction func_get_args() qui renvoi un tableau indexé numériquement.

Re: Methode et Signature

Posté : 02 juin 2010, 09:30
par the doctor
Alors il n'y a aucun respect de la signature d'une Methode.
donc maMethode('Param1') = maMethode('Param1', 'Param2')?

Re: Methode et Signature

Posté : 02 juin 2010, 09:40
par mojorisin
C'est de la surcharge de méthode.

Après si vous vous être retrouvé "coincé" par ce problème de manque d'un deuxième argument pourquoi ne pas rajouter le deuxième argument dans la signature de votre méthode avec une valeur null par défaut puis tester ce deuxième argument dans le corps de la fonction ?
class A{
    public function test($arg1, $arg2 = null)
    {
        if($arg2 !== null)
        {
            // faire quelquechose
        }
    // reste du code
    }
}

Re: Methode et Signature

Posté : 02 juin 2010, 10:06
par the doctor
Oki, merci^^

Re: Methode et Signature

Posté : 02 juin 2010, 10:11
par zeus
Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente.