2009-06-25 6 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 
... 
관련 문제