|
|
|
@ -16,11 +16,11 @@ $object->label = trim($label);
|
|
|
|
|
就不得不修改所有给 `label` 属性赋值的代码。这种代码的重复会导致 bug, |
|
|
|
|
这种实践显然需要尽可能避免。 |
|
|
|
|
|
|
|
|
|
为解决该问题,Yii 引入了一个名为 [[yii\base\Object]] 的基类, |
|
|
|
|
为解决该问题,Yii 引入了一个名为 [[yii\base\BaseObject]] 的基类, |
|
|
|
|
它支持基于类内的 *getter* 和 *setter*(读取器和设定器)方法来定义属性。 |
|
|
|
|
如果某类需要支持这个特性,只需要继承 [[yii\base\Object]] 或其子类即可。 |
|
|
|
|
如果某类需要支持这个特性,只需要继承 [[yii\base\BaseObject]] 或其子类即可。 |
|
|
|
|
|
|
|
|
|
> Info: 几乎每个 Yii 框架的核心类都继承自 [[yii\base\Object]] 或其子类。 |
|
|
|
|
> Info: 几乎每个 Yii 框架的核心类都继承自 [[yii\base\BaseObject]] 或其子类。 |
|
|
|
|
这意味着只要在核心类中见到 getter 或 setter 方法,就可以像调用属性一样调用它。 |
|
|
|
|
|
|
|
|
|
getter 方法是名称以 `get` 开头的方法,而 setter 方法名以 `set` 开头。 |
|
|
|
|