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'];

代码工作得很好。为了使用一些自定义功能,我必须使用第一个代码块中显示的变量。我该如何解决这个问题?

如果您不清楚问题,请告诉我。

提前感谢你的帮助

4

2 回答 2

7

您可以使用这种常见的解决方法:

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

这基本上强制变量属性名称优先于数组访问运算符。

于 2012-11-12T22:37:34.903 回答
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'];
于 2012-11-12T22:33:50.910 回答