PHP задает свойства объекта динамически

У меня есть функция, которая должна читать массив и динамически устанавливать свойства объекта.

class A { public $a; public $b; function set($array){ foreach ($array as $key => $value){ if ( property_exists ( $this , $key ) ){ $this->{$key} = $value; } } } } $a = new A(); $val = Array( "a" => "this should be set to property", "b" => "and this also"); $a->set($val); 

Ну, очевидно, это не работает, есть ли способ сделать это?

РЕДАКТИРОВАТЬ

Кажется, что с этим кодом ничего не случилось, вопрос должен быть закрыт

Solutions Collecting From Web of "PHP задает свойства объекта динамически"

http://www.php.net/manual/en/reflectionproperty.setvalue.php

Думаю, вы можете использовать Reflection .

 <?php function set(array $array) { $refl = new ReflectionClass($this); foreach ($array as $propertyToSet => $value) { $property = $refl->getProperty($propertyToSet); if ($property instanceof ReflectionProperty) { $property->setValue($this, $value); } } } $a = new A(); $a->set( array( 'a' => 'foo', 'b' => 'bar' ) ); var_dump($a); 

Выходы:

 object(A)[1] public 'a' => string 'foo' (length=3) public 'b' => string 'bar' (length=3) 

Вам нужно только снять скобки {} и работать! -> $this->$key = $value;