qq_JESUS_iouBK5
保存从数据库取得的对象
慕后端6552594
工厂模式,自己随意写一下就算是了,也就是一个mysqli对象而已
慕的地0823274
把代码粘贴出来
_好久不见_2
比如Yii2框架的...
Model::batch 和 Model::each 方法
其中返回的对象 BatchQueryResult 就实现了迭代器接口
雪剑无影qq
迭代器就是把不同的数据结构 "相同功能 "的函数装到一个名字相同的函数里, 无论你用的是什么结构(链表/数 组/hash表等),总之你可以不关心任何细节遍历细节, 一些不可见的元素不会展示出来。 另外foreach是简单的 循环语法,但迭代器是一种方法工具, 迭代器可以根据需要自定义读取数据,而foreach是一次性载入数据,从内 存占用上讲迭代器也是更好的一种解决方式,当然具体实现还是要根据业务上的一些考量。
慕粉1255175637
qq_U_16
static function createUser($id){
$key='user_'.$id;
$user=Register::get($key);
if(!$user){
$user=new User($id);
Register::set($key,$user);
}
return $user;
}
通过工厂模式这个静态方法来实例化user
请问还有什么不明白的吗
anonymity_
从头到尾敲的话,是否应该加上一些自己的运用呢?
再说了如果从一开始学的话,这段代码就有出现过。
慕粉3216583
是在析构方法中实现的。
Hong林伟本以为
<?php
namespace IMooc;
class User
{
//数据库表
public $id;
public $name;
public $mobile;
public $regtime;
public $seril_no;
protected $data;
protected $db;
function __construct($id)
{
/**
* 适配器模式-统一接口
* 工厂模式,在一个地方创建对象
* 注册树模式,同一个对象,只创建一次
*/
$this->db = \IMooc\Factory::createDBMySQLi();
$this->db->connect('localhost', 'root', '', 'test', 'utf8');
$res = $this->db->query("select * from user where id = {$id} limit 1");
$data = $res->fetch_assoc();
$this->id = $data['id'];
$this->name = $data['name'];
$this->mobile = $data['mobile'];
$this->regtime = $data['regtime'];
$this->seril_no = $data['seril_no'];
}
//析构方法
function __destruct()
{
$this->db->query("update user set name ='{$this->name}', mobile='{$this->mobile}',
regtime='{$this->regtime}', seril_no='{$this->seril_no}' where id = {$this->id} limit 1");
}
}user中这样写,应该可以取出来
追逐梦想30
http://zhidao.baidu.com/link?url=DVs8U8fIgCDrQR2Z3n9q8rZvkLDsEjYmC7kRcATEEGlTdfNhNDuZ1mU3jRtEDsDwt15z4uBgbex2FU_HMPnafV7foUG8Zak5zcEsb54_5fK
等待_0010
dqmore
当然不是的,是 user model在析构的时候,执行了sql语句,可以把代码下载下来看一下就晓得