2012-07-20 87 views
0

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

让我解释一下:

我有我的订单:

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

    } 

但我不知道如何专门针对单个对象(你se在最后,我想获取相关用户的属性。

我该怎么做?

谢谢!

回答

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

我假设$数据[“订单”]是一个包含了一堆stdClass的对象数组像一个引用在这个问题中,为什么在这种情况下,您将使用$ data ['orders'] [$ key]语法先访问每个数组元素,然后再访问每个对象的属性。

请注意,虽然数据结构和问题的意图都不清楚,但如果这不能解决您的问题,您可能需要提供更多的上下文。

+0

是的,thx非常,这正是我期待的结构。 – 2012-07-20 15:45:01

+0

另外请注意(因为我忘了提及它),因为你有什么是stdClass对象,你可以随时添加“user”属性,但不要指望与其他类型的对象相同的行为(不是问题对于你现在需要的东西,但很高兴知道) – Mahn 2012-07-20 15:47:03

+0

我可以在哪里获得所有类型对象的列表/描述?我不知道有!=对象的类型.. – 2012-07-20 16:34:54