首页 > 解决方案 > PHP减少函数中的重复

问题描述

我有一个基于两个条件设置类变量的函数,该变量不是区域设置的,并且在传递的数组中有匹配的键......

    private function setVariable($source, $key, &$target)
    {
        if(!isset($target) && isset($source[$key]))
            $target = $source[$key];
        $target = $target;
    }

用...打电话

    $this->setVariable($source, 'key', $this->key);

或者...

    private function setVariable($source, $key, &$target)
    {
        if(!isset($target) && isset($source[$key]))
            return $source[$key];
        return $target;
    }

用...打电话

    $this->key = setVariable($source, 'key', $this->key);

然而,两者似乎都在调用中涉及不必要的重复setVariable(...),特别是考虑到要设置的变量的名称始终是 的值$key,所以如果$key = 'wombat'我正在设置$this->wombat.

有没有办法重写它,以便我调用setVariable(...)做类似的事情?...

    $this->key = setVariable($source);
    $this->setVariable($source, 'key');
    $this->setVariable($source, $this->key);

注意:我什至可以$source省略因为$source = $this->alwaysSameArray,但我认为保留它会使它更清晰,而且它肯定会使里面的代码setVariable(...)更简洁。

标签: phpfunctionvariables

解决方案


推荐阅读