在foreach中获取对象数据

时间:2014-01-27 15:24:30

标签: php object

我正试图从我的对象中获取一些数据。我的问题是我希望它在这样的foreach循环中完成:

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

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

@endforeach

但它不起作用,我收到错误:未定义的属性:stdClass :: $ Type。

在我的对象中,我有类型Type1,Type2,Type3 ......

的数据

如果我将代码更改为:

,它就有效
@foreach($event_types as $event_type_key => $event_type_val)

  echo $data->Type1;

@endforeach

但我希望使用$ event_types数组中的值更改类型计数。

有人能看出我做错了吗?

2 个答案:

答案 0 :(得分:1)

简单地

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

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

@endforeach

答案 1 :(得分: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

您不应使用@来抑制错误。它隐藏了错误。