如何向对象添加属性


How to add attributes to an object?

我想知道如何将未在类中声明的属性添加到对象中。

让我解释一下:

我有订单:

 [0] => stdClass Object
( 
   [quantityBlack] => 3
   [quantityBlue] => 1
   [quantityGreen] => 0
   [quantityOrange] => 0
   [quantityPurple] => 0
   [quantityRed] => 0
   [dateOfOrder] => Fri, 06 Jul 12 22:21
   [user_id] => 5
   [comments] => Test
)

我想用用户的属性代替user_id

所以我想做的是:

foreach ($data['orders'] as $key => $order){
        $data['orders']->$key???-> = $this->user_model->GetUsers(array('userId' => $order->user_id));
    }

但我不知道如何在最后专门针对单个对象(你看到键了吗???),我想获得该顺序的相关用户的属性。

我该怎么做?

谢谢!

如果我正确理解您的数据结构,您将尝试执行以下操作:

foreach($data['orders'] as $key => $order) {
    $data['orders'][$key]->user = $this->user_model->GetUsers(array('userId' => $data['orders'][$key]->user_id));
    unset($data['orders'][$key]->user_id);
}

我假设$data['orders']是一个包含一堆stdClass对象的数组,就像问题中引用的那个对象一样,因此,在这种情况下,在访问每个对象的属性之前,为什么要使用$data[`orders'][$key]语法先访问每个数组元素。

请注意,数据结构和你在问题中的意图都有点不清楚,所以如果这不能解决你的问题,你可能需要提供更多的上下文。