2014-01-27 67 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 

你不應該使用@壓制錯誤。它隱藏了錯誤。