Php 在foreach中获取对象数据

Php 在foreach中获取对象数据,php,object,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循环中完成,如下所示:

@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\u types数组中的值而改变


有人能看出我做错了什么吗?

您想动态编写一个PHP对象属性

你这样做:

 $key = "Type1";
 $data->$key;
就你而言:

foreach($event_types as $event_type_key => $event_type_val):
  $k = 'Type'.$event_type_key;
  echo $data->$k;
endforeach
您不应该使用
@
来抑制错误。它隐藏了bug。

很简单

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

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

@endforeach

可能的重复应该写
“Type”。$event\u Type\u key
,否则PHP会认为它是一个常量。@BartFriederichs谢谢!