2009-06-25 13 views
4

Ich möchte ein Array nehmen und die Werte dieses Arrays verwenden, um die Eigenschaften eines Objekts unter Verwendung der Schlüsselnamen des Arrays aufzufüllen. Wie so:Die Eigenschaften eines Objekts mit einem Array füllen?

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

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

Danach habe ich jetzt:

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

Wie würde ich mich über das tun dies?

Antwort

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

Die Syntax, mit der Sie Ihr Array deklarieren, ist jedoch nicht gültig. Sie brauchen so etwas wie dies zu tun:

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

Wenn Sie nicht über die Klasse des Objekts kümmern, könnten Sie einfach das tun (was Sie eine Instanz von stdClass):

$o = (Object) $a; 
+0

Wow, ich fühle mich fast dumm. Vielen Dank. – ryeguy

+0

Woops auf dem Array auch, das ist meine neue Sprache, die eine Zusammenführung von PHP und Python ist: p – ryeguy

-2

Hm . Was ist dann so etwas wie

class Obj 
{ 

    var properties = array(); 

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

hat, kann man sagen:

$o->properties['property1'] == 1 
... 
Verwandte Themen