标签:rom this connect 编程 集合 str users 内部实现 nec
定义:在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素$users = new \IMooc\AllUser();
foreach ($users as $user)
{
var_dump($user);
}
<?php
namespace IMooc;
class AllUser implements \Iterator
{
protected $ids;
protected $data = array();
protected $index;
function __construct()
{
$db = new \IMooc\Database\MySQLi();
$db->connect(‘127.0.0.1‘, ‘root‘, ‘root‘,‘test‘);
$result = $db->query("select id from user");
$this->ids = $result->fetch_all(MYSQLI_ASSOC);
}
//返回当前的数据
function current()
{
$id = $this->ids[$this->index][‘id‘];
return Factory::getUser($id);
}
//将索引值向下移动
function next()
{
$this->index ++;
}
//查询当前是否有数据
function valid()
{
return $this->index < count($this->ids);
}
//将迭代器移动到集合的开头
function rewind()
{
$this->index = 0;
}
//返回当前key
function key()
{
return $this->index;
}
}
<?php
namespace IMooc;
class Factory
{
static function getUser($id)
{
$key = ‘user_‘.$id;
$user = Register::get($key);
if (!$user)
{
$user = new User($id);
Register::set($key, $user);
}
return $user;
}
}
标签:rom this connect 编程 集合 str users 内部实现 nec
原文地址:http://www.cnblogs.com/phonecom/p/cc5902329c5cee3164670b128291264f.html