在php中将数组转换为对象类

时间:2014-02-13 07:50:52

标签: php

我的数组看起来像这样:

$config = array(
   'id' => 123,
   'name' => 'bla bla',
   'profile' => array(
      'job' => 'coder',
      'more' => 'info'
   )
);

我想创建类Config,如下所示:

$c = new Config($config);

echo $c->profile->more;
有人可以帮帮我吗?

2 个答案:

答案 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