PHP getter和setter在一起

时间:2015-04-10 19:37:02

标签: php function setter getter getter-setter

我正在使用PHP开发一个个人项目,就像大多数构建的类一样,我需要getter / setter函数。

我有一个想法并做了一些研究,但找不到答案。而不是定义两个函数 - 一个get和一个set - 为什么它们不能只由一个函数处理?

function myVar ($newVar = NULL) {
   if(isset($newVar)) {
     $this->var = $newVar;
   } else {
      return $this->var;
   }
}

我可能没有看到任何缺点吗?

1 个答案:

答案 0 :(得分:2)

你可以使用__get__set魔法尘埃。但是,有一个缺点:你将失去IDE自动完成,PHPDoc生成,继承。它有助于不编写代码,但它不干净,你没有公共/保护/私有逻辑。你的方法也一样。

class MyClass {
  private $one;
  private $two;

  public function __get($property) {
    if (property_exists($this, $property)) {
      return $this->$property;
    }
  }

  public function __set($property, $value) {
    if (property_exists($this, $property)) {
      $this->$property = $value;
    }

    return $this;
  }
}