以下代码:
$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'];
代码工作得很好。为了使用一些自定义功能,我必须使用第一个代码块中显示的变量。我怎么解决这个问题?
如果您不清楚问题,请告诉我。
提前感谢您的协助
答案 0 :(得分:7)
您可以使用以下常用解决方法:
$current_user_count = $user_data->{$field}['und']['0']['value'];
这基本上强制变量属性名称优先于数组访问运算符。
答案 1 :(得分: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'];