为什么这样做
foreach ($items as $i) {
$dataTitle = $this->dataTitle;
$title = $i->$dataTitle;
}
什么时候没有?
foreach ($items as $i) {
$title = $i->$this->dataTitle;
}
有更好的方法吗?
答案 0 :(得分:4)
试试这个:
$title = $i->{$this->dataTitle};
您的表达式被解析为:
$title = ($i->$this)->dataTitle;
答案 1 :(得分:3)
$this
引用当前对象以不明显的顺序解析。您需要使用{expr}
表示法来动态评估属性名称。
尝试在{}
周围使用$this->dataTitle
:
$title = $i->{$this->dataTitle};
请查看手册variable variables部分中最后一个示例的底部部分。