【发布时间】:2016-09-19 09:52:29
【问题描述】:
我在 php 中有一个类,想知道是否有特定的约定如何在我的构造函数中设置这些私有变量。
我应该用我的setter 还是this 设置它们?
class foo {
private $bar;
public function __construct($foobar) {
$this->bar = $foobar;
}
public function setBar($bar) {
$this->bar = $bar;
}
public function getBar() {
return $this->bar;
}
}
或
class foo {
private $bar;
public function __construct($foobar) {
$this->setBar($foobar);
}
public function setBar($bar) {
$this->bar = $bar;
}
public function getBar() {
return $this->bar;
}
}
或者我的问题只是哲学问题?
可以使用getters 提出同样的问题。但我猜你在处理父类的私有变量时必须使用setters 和getters。
【问题讨论】:
-
由于您的 getter 和 setter 实际上什么都不做,只是不受限制地获取/设置变量,您不妨将其设为
public并直接修改它;) -
好点。所以你只使用
setters和getters只有当你想做别的事情时,除了原样返回它们吗? -
@NiettheDarkAbsol - 我不同意。 1) 让一切都成为对象的方法 - 避免混淆 2) 如果要计算其中一个,将来会发生什么?见programmers.stackexchange.com/questions/176876/…