PHP对象属性从类变量


PHP object property from class variable?

为什么可以呢

foreach ($items as $i) {
    $dataTitle = $this->dataTitle;
    $title = $i->$dataTitle;
}

当这不是?

foreach ($items as $i) {
    $title = $i->$this->dataTitle;
}

有更好的方法吗?

试试这个:

$title = $i->{$this->dataTitle};

你的表达式被解析为:

$title = ($i->$this)->dataTitle;

$this指的是按不明显顺序解析的当前对象。您需要使用{expr}符号,来动态计算属性名称。

尝试在$this->dataTitle周围使用{}:

$title = $i->{$this->dataTitle};

查看手册变量部分最后一个例子的底部。