使用参数创建2个方法或1个方法

时间:2014-06-17 18:45:06

标签: php function oop functional-programming

在编写类方法以将变量设置为true / false时,为每个[setActiveTrue()和setActiveFalse()]编写单独的方法是否更好,或者最好使用采用true / false的单个方法参数[setActive($ x)]。

public setActive() {
    $this->activeElement = true;
}

public removeActive() {
    $this->activeElement = false;
}

OR

public setActive($x) {
    $this->activeElement = $x;
}

3 个答案:

答案 0 :(得分:0)

我不知道"最佳做法"是,但我总是做一个方法,如:

public function setActive ($active = true) {
    $this->_active = (boolean) $active;
}

我可以看到论证的两面,但我的风格是一种方法。

答案 1 :(得分:0)

我会这样做

public function Active($x = true) {
    $this->activeElement = $x;
}

然后,您可以致电Active()将其设为有效,并Active(false)将其设为无效。

答案 2 :(得分:0)

我喜欢设置和获取一个方法:

public function active($param='')
 {switch ($param)
   {case '':
      return $this->active;
    case true:
      $this->active = true;
    default:
      $this->active = false;}}

$active = $this->active(); // returns active
$this->active(true); // set active to true

$this->active('true');
$this->active('false'); // those will set active to false
$this->active(false);

在这种情况下,调用没有args的函数(或使用空字符串)返回值,使用true调用它将其设置为true,并使用任何其他参数调用它将其设置为false