Php MVC模型get()和set()与直线上升$Model->;var=val

Php MVC模型get()和set()与直线上升$Model->;var=val,php,model-view-controller,Php,Model View Controller,什么时候是使用函数在我的模型中设置变量的合适时机,而不是直接赋值 又名 何时使用: $model->set('status','active'); …而不是: $model->status = 'active'; 使用getter和setter有利于代码的封装。使用它们总是一个好主意 想想这个: 如果您的模型中有一些您不希望读取或更改(或同时读取和更改)的变量,该怎么办 如果除了获取和设置变量之外,还需要做些什么呢?(例如,对数据进行统计) 如果您使用的是最新版本的PHP(5.

什么时候是使用函数在我的模型中设置变量的合适时机,而不是直接赋值

又名

何时使用:

$model->set('status','active');
…而不是:

$model->status = 'active';

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

想想这个:

  • 如果您的模型中有一些您不希望读取或更改(或同时读取和更改)的变量,该怎么办
  • 如果除了获取和设置变量之外,还需要做些什么呢?(例如,对数据进行统计)
如果您使用的是最新版本的PHP(5.x),那么您可以通过神奇的方法
\uuu get()
\uu set()
实现这两个方面的最佳效果。对未定义属性的任何访问都将自动路由到相应的get/set函数


我必须承认,我不确定这是否真的是一个好主意,但它似乎非常适合MVC系统中的基本模型类。

这取决于您的MVC框架。你使用哪一个?滚动我自己…为了学习过程,你也应该考虑<代码> $MODE-> SESTStATE(“活动”)< /代码>。将所有逻辑放在一个
set
方法中也不是很好。封装在调试时也非常有用。使用getter和setter,您可以在一个地方轻松地跟踪变量的更改,而不必在代码中的任何地方找到您所谓的$model->variableah,我明白了……这绝对有道理:)