如何向对象添加属性?

时间:2012-07-20 15:30:17

标签: php oop object attributes

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

让我解释一下:

我有我的订单:

 [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));

    }

但是我不知道如何专门针对单个对象(你看到密钥???),我希望得到相关用户的属性到那个顺序。

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果我理解您的数据结构,您正在寻求执行以下操作:

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 ]在访问每个对象的属性之前,首先访问每个数组元素的语法。

请注意,问题中的数据结构和你的意图有点不清楚,所以如果这不能解决你的问题,你可能想要提供更多的背景。