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

PHP5.4でのみ機能する可能性があります。以前のバージョンについては、次も試してください。

$field = 'field_total_comments_added';
$item = $user_data->$field;
$current_user_count = $item['und']['0']['value'];
于 2012-11-12T22:33:50.910 に答える