如何从另一个对象创建对象的键?

时间:2018-01-20 09:34:36

标签: php object

我有:

include $(CLEAR_VARS)

我需要在对象$product = Product::where('id', $productId)->first(); 中添加一个新行,其中对象的键为$this->items。这是糟糕的结构,但是像这样:

$product->id

如何以正确的方式做到这一点?

1 个答案:

答案 0 :(得分:1)

如果$this->items是数组,则应使用

$this->items[$product->id] = (object)['name' => $product->name] ;

如果是对象,则应在之前使用临时变量:

$tmp_id = $product->id ;
$this->items->$tmp_id = (object)['name' => $product->name] ;

或使用括号:

$this->items->{$product->id} = (object)['name' => $product->name] ;

<强>为什么吗

因为$this->items->$product->id将被解释为获得id $this->items->$product而不是之前评估$product->id