我正在尝试将魔术方法__get()
与类一起使用以访问私有属性。除非访问该属性,否则不会为其分配值,并且该值是一个从 0 开始索引的数组。
class Foo {
private $bar;
public function __get($p) {
if ($p == 'bar') {
if ($this->bar) {
return $this->bar;
}
else {
return $this->bar = $this->get_bar();
}
}
}
private function get_bar() {
return Array('a', 'b', 'c'); // data from db
}
}
在我的 PHP 代码中,我正在实例化这个类的一个对象,并将它直接传递给 Smarty(即$smarty->assign('obj', new Foo())
)。我想从$bar
模板文件中的属性访问索引 0 处的值。我试过这个:
{$obj->bar[0]}
但是,这并没有为我返回任何东西......这是这个魔术方法返回的数据不支持的东西吗?