【问题标题】:Simplify PHP Code简化 PHP 代码
【发布时间】:2013-12-02 01:48:33
【问题描述】:

我不想仅仅为这么小的东西声明一个变量..检查一下

$value = $this->getValue(); 
echo $value['Setting']['value'];

/\ $this->getValue() 返回一个数组..

有一种方法可以这样使用: echo $this->getValue()['Setting']['value']; ?谢谢

【问题讨论】:

    标签: php simplify


    【解决方案1】:

    您可以在PHP 5.4 中执行此操作。它被称为Function Array Dereferencing。如果你使用

    不过,这并不是一个真正重要的问题。这可能有点烦人,但这不是世界末日。

    【讨论】:

    • 谢谢!这对我帮助很大。
    【解决方案2】:

    在您的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;
    

    【讨论】:

    • 我认为这是让您的代码看起来更干净的更好方法,如果您使用此答案,请接受...
    【解决方案3】:

    看看 cake core 中的所有类都做了多少。 Configure::read(), CakeSession::read(), $this->request->query(), $this->request->data() 等等。它们都可以通过点语法返回值。所以你也可以在这里。

    所以最后你可以说:

    echo $this->getValue('Setting.value'); 
    

    【讨论】:

    • 很好,但是.. 我忘了说 getValue 有一个带有$this->find 条件的参数,你知道吗?那么,我怎样才能像$this->getValue('parameter')['Setting']['Value']; 这样显示这个数组呢?谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多