当我通过getter / setter方法直接访问我的私有/受保护类成员时,这是一种糟糕的编程方式吗?
备选方案#1
<?php
class A {
private $myVariable;
public function getMyVariable() {
return $this->myVariable;
}
public function doSomething() {
$variable = $this->getMyVariable();
}
}
?>
备选方案#2
<?php
class A {
private $myVariable;
public function doSomething() {
$variable = $this->myVariable;
}
}
?>
您更喜欢哪种方式?我认为第一个解决方案与第二个解决方案相比更具可读性。请让我听听你的意见。
提前致谢。
答案 0 :(得分:1)
由于您确定这不是重复,我将复制与此案相关的this response点:
答案 1 :(得分:0)
也许你应该以另一种方式思考:为什么我们需要getter / setter?它们抽象直接访问字段。即使Getter除了设置值之外什么都不做,它可以在以后保护你。稍后将字段更改为Getter是一个重大变化,尤其是在PHP IDE(badumm)中。因此,我认为每当您想要保护字段以防止漏洞/错误代码时,请使用getter / setter。