我想获取一个数组并使用该数组的值来使用数组的键名填充对象的属性。像这样:
$a=array('property1' => 1, 'property2' => 2);
$o=new Obj();
$o->populate($a);
class Obj
{
function Populate($array)
{
//??
}
}
在此之后,我现在有:
$o->property1==1
$o->property2==2
我将如何做到这一点?
答案 0 :(得分:12)
foreach ($a as $key => $value) {
$o->$key = $value;
}
但是,用于声明数组的语法无效。你需要做这样的事情:
$a = array('property1' => 1, 'property2' => 2);
如果你不关心对象的类,你可以这样做(给你一个stdClass
的实例):
$o = (Object) $a;
答案 1 :(得分:-3)
嗯。怎么样有像
这样的东西class Obj
{
var properties = array();
function Populate($array)
{
this->properties = $array;
}
}
然后你可以说:
$o->properties['property1'] == 1
...