我的数组看起来像这样:
$config = array(
'id' => 123,
'name' => 'bla bla',
'profile' => array(
'job' => 'coder',
'more' => 'info'
)
);
我想创建类Config,如下所示:
$c = new Config($config);
echo $c->profile->more;
有人可以帮帮我吗?
答案 0 :(得分:0)
您可以在Config类的构造函数中执行此操作:
$object = json_decode(json_encode($array), false);
通常,如果您的阵列是扁平的(没有嵌套),那么您也可以使用:
$object = (object)$array;
答案 1 :(得分:0)
在类构造中从数组创建配置对象。 如果你想要更多,那么看看__set()__ get()__ call()类函数。
工作代码:
$config = array(
'id' => 123,
'name' => 'bla bla',
'profile' => array(
'job' => 'coder',
'more' => 'info'
)
);
class Config{
public function __construct($data){
foreach($data as $k => $v){
$this->{$k} = (object)$v;
}
}
}
$c = new Config($config);
print_r($c);
echo $c->profile->job;
响应:
Config Object
(
[id] => stdClass Object
(
[scalar] => 123
)
[name] => stdClass Object
(
[scalar] => bla bla
)
[profile] => stdClass Object
(
[job] => coder
[more] => info
)
)
coder