2012-11-12 28 views
2

下面片的碼偏移:當使用可變:致命錯誤:無法使用字符串作爲數組

$field = 'field_total_comments_added'; 
$current_user_count = $user_data->$field['und']['0']['value']; 

返回一個錯誤:致命錯誤:無法使用字符串作爲如果我陣列

偏移只是使用:

$current_user_count = $user_data->field_total_comments_added['und']['0']['value']; 

該代碼工作得很好。爲了使用一些自定義功能,我必須使用第一個代碼塊中顯示的變量。我該如何解決這個問題?

請告訴我,如果問題不清楚給你。

預先感謝您的幫助

回答

7

你可以使用這個共同的解決辦法:

$current_user_count = $user_data->{$field}['und']['0']['value']; 

這基本上強制變量屬性名稱有超過數組訪問運算符的優先級。

+0

非常感謝,就這麼簡單:) –

1

嘗試:

$field = 'field_total_comments_added'; 
$current_user_count = ($user_data->$field)['und']['0']['value']; 

它可能只針對PHP 5.4的工作。對於早期版本,也嘗試:

$field = 'field_total_comments_added'; 
$item = $user_data->$field; 
$current_user_count = $item['und']['0']['value']; 
相關問題