类变量的PHP对象属性?

时间:2013-05-16 05:56:03

标签: php

为什么这样做

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

什么时候没有?

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

有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

试试这个:

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

您的表达式被解析为:

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

答案 1 :(得分:3)

$this引用当前对象以不明显的顺序解析。您需要使用{expr}表示法来动态评估属性名称。

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

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

请查看手册variable variables部分中最后一个示例的底部部分。