У меня есть класс в php и хочу знать, существует ли конкретное соглашение о том, как установить эти частные переменные в моем конструкторе.Как установить переменные класса в 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
при обработке частных переменных вашего родительского класса.
Поскольку ваш геттер и сеттер буквально ничего не делают, кроме как получить/установить переменную без ограничений, вы также можете сделать ее «публичной» и изменить ее напрямую;) –
Хорошая точка. Таким образом, вы просто используете 'seters' и' getters' только тогда, когда хотите сделать что-то еще, кроме как вернуть их так, как они есть? – Jurik
@NiettheDarkAbsol - Я не согласен. 1) Сделать все методом для объекта - экономит путаницу 2) Что произойдет в будущем, если один из них будет рассчитан? См. Http://programmers.stackexchange.com/questions/176876/why-shouldnt-i-be-using-public-variables-in-my-java-class –