2012-06-28 1 views
2

J'ai une classe avec une structure comme suit:Syntaxe pour affecter des valeurs aux membres de classe dynamiques en PHP?

class Test { 

    private $var1; 
    private $var2; 
    private $var3; 

    public function __construct($params) { 

     foreach($params as $key => $value) { 

      $this->$key = $value; 

     } 

    } 

} 

L'idée est que je peux passer un certain nombre de paramètres lors de l'instanciation d'un nouvel objet comme je l'entends. Ainsi, par exemple, je peux faire:

$params['var2'] = "Variable 2 Instantiated"; 
$params['var3'] = "Test"; 
$test = new Test($params); 

qui ne ferait que instancier $ test-> var2 et $ test-> var3.

Jusqu'à présent, j'ai écrit une liste de tâches, mais si je veux instancier un objet avec seulement la moitié des membres disponibles, je dois vérifier si les valeurs ont été définies, etc.

SO la La vraie question est:

Quelle est la syntaxe correcte pour assigner des valeurs aux membres dynamiques de la classe?

$this->$var = $var2 

Selon mon exemple, ne fonctionne pas. J'ai essayé googling avec pas de chance.

+2

Votre exemple de code semble correct, et il fonctionne [dans cette démo] (http://viper-7.com/wR5YHT) – nickb

+0

Hmm, merci, va chercher plus loin, doit avoir un problème ailleurs. Merci. – Anonymous

+0

Exécutez-le dans un débogueur et parcourez votre code - vous aurez fait une supposition invalide quelque part, comme mal orthographier le constructeur –

Répondre

Questions connexes