我们是否需要私有变量的getter和setter

时间:2015-01-29 14:06:28

标签: php

我们真的需要私有变量的getter和setter吗? 因为它们只用在物体中,而不是我在其他地方 认为没有必要。

我查看了一些框架,我看到有一个混合。 有时候getter / setter有时候没有(例如Symfony2框架)。

我的意见是他们在课堂上只占用太多代码。

3 个答案:

答案 0 :(得分:0)

如果要更改或读取值,则只需要一个setter或getter。例如,如果您只使用getter,那么该值就是readonly。

答案 1 :(得分:0)

这取决于您的需求,但即使您在内部使用它们,请考虑以下情况:

class CalendarEvent{

  private $date;

  // with type hinting, you are sure to deal with a DateTime instance  
  public function setDate(DateTime $date){
    $this->date = $date;
  }

  public function getDate(){
    return $this->date;
  }

}

在所有代码库中保持一致,在我看来,为每个属性设置getter / setter都没有坏处。

[占用太多代码应该没有争论,只要它们有用。]

答案 2 :(得分:0)

即使私有(在对象内)如果你想设置/改变私有属性的值几次你可以从getter / setter中受益,如果你必须对值进行操作/验证,即一些清理,控制如果是空的或类似的东西......它只是一个指导原则,而不是规则,必须在每种情况下进行评估。