PHP - 连接对象类名


PHP - Concatenate object class name

是否可以连接对象的名称?下面似乎不起作用。

试图打电话给$node->field_presenter_en;

$lang = 'en';
$node->field_presenter_.$lang;
${$node->field_presenter_.$lang};

谢谢!

尝试:

$field_presenter = 'field_presenter_'.$lang;
$node->$field_presenter;

这称为变量变量。更多信息在这里:http://php.net/manual/en/language.variables.variable.php

编辑:用户nickb在下面提出了一个更优雅的解决方案,我将合并到这个答案中以便于阅读(nickb:如果您希望我删除它,请告诉我):

$node->{'field_presenter_'.$lang}
$field_presenter = 'field_presenter_'.$lang;
$node->$field_presenter;
<?php
class A {
    public $prop = 'hello';
}
$a = new A();
echo $a->{'pro' . 'p'}; // hello