Page 1 sur 1

Question de syntaxe sur l'opérateur this

Posté : 08 mars 2012, 11:58
par monio
Bonjour,
Je voudrais savoir ce que c'est cette syntaxe en PHP objet

        
 public function maMethode($donnees)  
        {  
            foreach ($donnees as $attribut => $valeur)  
            {  
                $methode = 'set'.ucfirst($attribut);  
                  
                if (is_callable(array($this, $methode)))  
                {  
                    $this->$methode($valeur);  
                }  
            }  
        }

Donc je me demande ce que c'est cette syntaxe $this->$methode
Pourquoi ne pas faire la même chose sans l'opérateur $this->.
Quel sont les avantage de cette syntaxe ?

Pouvez-vous m'expliquer ?
Merci d'avance :)

Re: Question de syntaxe sur l'opérateur this

Posté : 08 mars 2012, 12:16
par zeus
Bonjour,

Tout est dans la l'ordre de résolution.
Un petit exemple parlant :
class Foobar
{
	public function bar()
	{
		$method = 'foo';

		$this->$method(); // va exécuter $this->foo() car PHP va commencer par résoudre $method, puis $this->(contenu de $method)
	}

	public function foo()
	{

	}
}

Re: Question de syntaxe sur l'opérateur this

Posté : 10 mars 2012, 11:59
par moogli
Juste un oublie : en php $this est obligatoire (contrairement à java par exemple ^^)

@+