2009-06-25 12 views
4

私は配列をとり、その配列の値を使用して配列のキー名を使ってオブジェクトのプロパティを設定したいと考えています。これと同じように:この後オブジェクトのプロパティに配列を設定するには?

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

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

、私が今持っている:

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

は、どのように私はこれを行うに行きますか?

答えて

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

ただし、配列の宣言に使用する構文は無効です。あなたがオブジェクトのクラスを気にしない場合は

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

、あなただけのこの操作を行う(あなたstdClassのインスタンスを与える)こともできます:あなたはこのような何かをする必要が

$o = (Object) $a; 
+0

うわー、私はほとんど愚かな感じ。ありがとう。 – ryeguy

+0

配列上のWoopsも、PHPとPythonのマージされた新しい言語です:p – ryeguy

-2

フム。何

class Obj 
{ 

    var properties = array(); 

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

のようなものを持っていることについて次に、あなたが言うことができる:

$o->properties['property1'] == 1 
... 
関連する問題