2014-01-27 66 views
0

我试图从我的对象中获取一些数据。我的问题是,我想它在foreach循环就像这样:获取foreach中的对象数据

@foreach($event_types as $event_type_key => $event_type_val) 

    echo $data->Type.''.$event_type_key; 

@endforeach 

但它不工作,我得到的错误:未定义的属性:stdClass的:: $类型。

在我的对象我有这样的Type1和Type2,类型3的数据...

如果我更改代码,以它的工作原理:

@foreach($event_types as $event_type_key => $event_type_val) 

    echo $data->Type1; 

@endforeach 

但我喜欢的类型计数与改变$ event_types数组的值。

有人可以看到我做错了什么吗?

+2

可能重复http://stackoverflow.com/questions/12571197/how-do-i-dynamically-write- a-php-object-property-name) – dm03514

回答

1

只需

@foreach($event_types as $event_type_key => $event_type_val) 

    echo $data->{'Type' . $event_type_key}; 

@endforeach 
的[如何动态地写一个PHP对象属性的名字吗?](
+2

你应该写''Type'。$ event_type_key'或PHP会认为它是一个常量。 –

+0

@BartFriederichs谢谢你! –

+0

谢谢,工作:-) –

0

您想要动态编写PHP对象属性。

你做这样的:

$key = "Type1"; 
$data->$key; 

你的情况:

foreach($event_types as $event_type_key => $event_type_val): 
    $k = 'Type'.$event_type_key; 
    echo $data->$k; 
endforeach 

你不应该使用@压制错误。它隐藏了错误。