2016-03-10 121 views
0

我想创建一个具有以下图层的php对象。如何创建嵌套的php对象

$obj->property->name; 
$obj->property->title; 
$obj->property->id; 
$obj->property->height; 

这给我 'Trying to get property of non-object' 错误

我的目标

$obj = [ 
    'property' => [ 
     'name' => 'Rick', 
     'title' => 'manager', 
     'id' => '123', 
     'height' => '5.6' 
    ] 
]; 

$obj = = (object)$obj; 

我不知道正确的语法产生$obj->property->name;任何人都可以帮我吗?我的大脑被解雇了......谢谢!

+0

'$ obj'被声明为一个数组,你可以只投'(对象)'在声明 – Ghost

+0

这应该是'$ obj->属性[ '名称'];' – devpro

回答

1

你应该投 到objectproperty

$obj = [ 
    'property' => [ 
     'name' => 'Rick', 
     'title' => 'manager', 
     'id' => '123', 
     'height' => '5.6' 
    ] 
]; 

$object = (object)$obj; 
$object->property = (object)$object->property; 

结果:

var_dump($object->property->id); // string(3) "123" 
var_dump($object->property->name); // string(4) "Rick" 
// etc. 
1

你有property object一个数组里面,你可以不喜欢这样

$obj->property->name; 

使用这应该是:

$obj->property['name']; 

例子:

$yourArr = array('property'=>array(
     'name' => 'Rick', 
     'title' => 'manager', 
     'id' => '123', 
     'height' => '5.6' 
    )); 

$yourObj = (object) $yourArr; 
echo $yourObj->property['name']; // Rick