【发布时间】:2013-12-02 01:48:33
【问题描述】:
我不想仅仅为这么小的东西声明一个变量..检查一下
$value = $this->getValue();
echo $value['Setting']['value'];
/\ $this->getValue() 返回一个数组..
有一种方法可以这样使用:
echo $this->getValue()['Setting']['value'];
?谢谢
【问题讨论】:
我不想仅仅为这么小的东西声明一个变量..检查一下
$value = $this->getValue();
echo $value['Setting']['value'];
/\ $this->getValue() 返回一个数组..
有一种方法可以这样使用:
echo $this->getValue()['Setting']['value'];
?谢谢
【问题讨论】:
您可以在PHP 5.4 中执行此操作。它被称为Function Array Dereferencing。如果你使用
不过,这并不是一个真正重要的问题。这可能有点烦人,但这不是世界末日。
【讨论】:
在您的getValue(); 函数上,确保您返回$value['Setting']['value'],这样在您的调用函数上,您就可以执行echo $value;
例如,我的控制器中有这个:
public function myFunction(){
...
$value = $this->MyModel->getName($id);
$this->set('value', $value);
}
...我的模型中有这个来获取名称值:
public function getName($id){
$value = $this->find('first', array(
'conditions' => array(
'id' => $id
)
));
return $value['MyModel']['name'];
}
...所以在你看来,你可以这样做:
echo $value;
【讨论】:
看看 cake core 中的所有类都做了多少。 Configure::read(), CakeSession::read(), $this->request->query(), $this->request->data() 等等。它们都可以通过点语法返回值。所以你也可以在这里。
所以最后你可以说:
echo $this->getValue('Setting.value');
【讨论】:
$this->find 条件的参数,你知道吗?那么,我怎样才能像$this->getValue('parameter')['Setting']['Value']; 这样显示这个数组呢?谢谢