2009-06-25 5 views
4

Je souhaite prendre un tableau et utiliser les valeurs de ce tableau pour remplir les propriétés d'un objet en utilisant les noms clés du tableau. Comme si:Remplir les propriétés d'un objet avec un tableau?

$a=array('property1' => 1, 'property2' => 2); 
$o=new Obj(); 
$o->populate($a); 

class Obj 
{ 
    function Populate($array) 
    { 
     //?? 
    } 
} 

Après cela, j'ai maintenant:

$o->property1==1 
$o->property2==2 

Comment dois-je prendre?

Répondre

12
foreach ($a as $key => $value) { 
    $o->$key = $value; 
} 

Cependant, la syntaxe que vous utilisez pour déclarer votre tableau n'est pas valide. Vous devez faire quelque chose comme ceci:

$a = array('property1' => 1, 'property2' => 2); 

Si vous ne se soucient pas de la classe de l'objet, vous pouvez simplement le faire (vous donnant une instance de stdClass):

$o = (Object) $a; 
+0

Wow, je me sens presque stupide. Merci. – ryeguy

+0

Woops sur le tableau aussi, c'est ma nouvelle langue qui est une fusion de PHP et python: p – ryeguy

-2

Hm . Qu'en est-il avoir quelque chose comme

class Obj 
{ 

    var properties = array(); 

    function Populate($array) 
    { 
     this->properties = $array; 
    } 
} 

Ensuite, vous pouvez dire:

$o->properties['property1'] == 1 
... 
Questions connexes