从PHP数组中将对象作为变量拉出(在Drupal 7模块中)

时间:2019-05-31 21:55:35

标签: php arrays drupal drupal-7

希望我以一种合理的方式提出这个问题。尽管我可能没有正确表达我的搜索字词,但找不到任何答案。

在我的Drupal 7定制模块中,我能够使用以下对象运算符(箭头->)语法成功地从分类法数组中获取数据

$term = taxonomy_term_load($taxonomy_tid);
$description = $term->description;
echo $description;

如何使“描述”标签本身成为变量?设置为:

$term = taxonomy_term_load($taxonomy_tid);
$description_name_from_array = 'description';
$description = $term->????;
echo $description;

不起作用的东西:

  • $term->$description_name_from_array
  • $term->[$description_name_from_array]
  • $term->&$description_name_from_array

1 个答案:

答案 0 :(得分:0)

在特定情况下可能需要

大括号,但是您的第一次尝试应该可以访问说明。从对象访问简单变量属性的正确语法是

 $obj->$property
  

也可以使用变量属性名称访问类属性。   变量属性名称将在以下范围内解析   拨打电话。例如,如果您有一个这样的表达式   如$foo->$bar,则将检查本地范围的$bar及其   值将用作$foo属性的名称。这也是   如果$bar是数组访问,则为true。

将变量用大括号括起来以清楚地界定属性名称是更安全的:

$obj->{$property}

必需

  • 访问包含数组的属性内的值:$obj->${$properties[0]}
  • 当属性名称由多个部分组成时:$obj->{$a . $b}
  • 使用常量访问属性时:$obj->{CONSTANT_NAME}
  • 或当属性名称包含无效字符时

请参见PHP的Variable Variables