我正在使用PHP开发一个个人项目,就像大多数构建的类一样,我需要getter / setter函数。
我有一个想法并做了一些研究,但找不到答案。而不是定义两个函数 - 一个get和一个set - 为什么它们不能只由一个函数处理?
function myVar ($newVar = NULL) {
if(isset($newVar)) {
$this->var = $newVar;
} else {
return $this->var;
}
}
我可能没有看到任何缺点吗?
答案 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;
}
}