1. 功能:给模型对象$data赋值,将模型对象转为数据对象
2. 方法:data()其源代码如下:
/**
* 设置数据对象值
* @access public
* @param mixed $data 数据或者属性名
* @param mixed $value 值
* @return $this
*/
public function data($data, $value = null) //$value可不传,不给时取默认值
{
if (is_string($data)) { //如何$data是字符串,则视为$data数组的键名
$this->data[$data] = $value; //给当前类data[$data键名]赋值:$value
} else {
// 清空数据
$this->data = [];
if (is_object($data)) {
//如参数$data是对象,将$data对象属性转关联数组给当前类的$data[]赋值
//注意:外部调用,仅限公共非静态属性可以转为关联数组
$data = get_object_vars($data); //对象属性转关联数组
}
if (true === $value) { //第二个参数是布尔值true:1,用获取器方法给$data[]赋值
// 数据对象赋值
foreach ($data as $key => $value) {
$this->setAttr($key, $value, $data);
}
} else { //将$data数组参数,直接绑定到到类的data[]属性上,完成初始化
$this->data = $data;
}
}
return $this; //返回数据对象
}
3. 参数与返回值
序号 | 参数 | 说明 |
---|
1 | $string / 字符串 | 必须存在第2个参数,第一个是键名,第二个是值,用于给数据对象中$data属性数据元素逐个赋值 |
2 | $array / 数组 | 用于给对象中的$data属性批量赋值 |
3 | $object / 对象 | 将对象转关联数组后,批量给$data属性赋值 |