2015-06-09 2 views
0

Я создаю экземпляр человека в соответствии с данными, полученными от ответа API.Как правильно создать свой собственный объект из объекта stdClass

Данные возвращаются как \ stdClass, и я хочу преобразовать их в свой собственный объект. Есть ли способ передать все вызовы в конструкторе и сделать что-то более элегантным?

Class Person 
{ 
    protected $Name; 
    protected $Email; 
    ... 
    protected $Property40; 

    **// Is there an elegant way to do it? Assuming I know all the property names** 
    public function __construct(\stdClass $person) 
    { 
     $this->Name  = $person->Name; 
     $this->EMail  = $person->EMail; 
     ... 
     $this->Property40 = $person->Property40 
    } 

} 

Tnx

ответ

1
public function __construct(\stdClass $person) 
{ 
    foreach ($person as $attr => $val) { 
     $this->$attr = $val; 
    } 
} 
+0

Tnx. И если раньше я не знал имен свойств. Будет ли он работать? –

+0

Несомненно. PHP создает динамические атрибуты классов. – venca

Смежные вопросы