MVC模型get()和set()与直接上升$ model-> var = val

时间:2010-01-06 21:42:35

标签: php model-view-controller

何时适合使用函数在模型中设置变量,只需直接指定它们?

... AKA

我何时使用:

$model->set('status','active');

...而不是:

$model->status = 'active';

2 个答案:

答案 0 :(得分:2)

使用getter和setter有利于代码的封装。使用它们总是一个好主意。

想一想:

  • 如果您的模型有一些您不希望能够阅读或更改的变量(或两者都有),该怎么办?
  • 如果除了获取和设置变量之外你还需要做什么呢? (例如,将数据打包)?

答案 1 :(得分:0)

如果您使用的是最新版本的PHP(5.x),则可以使用魔术方法__get()__set()充分利用这两个方面。 (PHP reference)。对未定义属性的任何访问都将自动路由到相应的get / set函数。

我必须管理员,我不确定这是否真的是一个好主意,但它似乎适合MVC系统中的基础模型类。