Я хочу взять массив и использовать значения этого массива для заполнения свойств объекта с помощью имен файлов массива. Вот так:
$a=array('property1' => 1, 'property2' => 2); $o=new Obj(); $o->populate($a); class Obj { function Populate($array) { //?? } }
После этого у меня теперь есть:
$o->property1==1 $o->property2==2
Как мне это сделать?
foreach ($a as $key => $value) { $o->$key = $value; }
Однако синтаксис, который вы используете для объявления вашего массива, недействителен. Вам нужно сделать что-то вроде этого:
$a = array('property1' => 1, 'property2' => 2);
Если вам не stdClass
класс объекта, вы можете просто сделать это (предоставив вам экземпляр stdClass
):
$o = (Object) $a;
Гектометр Как насчет того, чтобы что-то вроде
class Obj { var properties = array(); function Populate($array) { this->properties = $array; } }
Тогда вы можете сказать:
$o->properties['property1'] == 1 ...