迭代器:類繼承PHP的Iterator接口,批量操做。
1. 迭代器模式,在不須要了解內部實現的前提下,遍歷一個聚合對象的內部元素。
2. 相比傳統的編程模式,迭代器模式能夠隱藏遍歷元素的所需操做。
接口Iterator
current() 返回當前元素
key() 返回當前元素的鍵
next() 向前移動到下一個元素
rewind() 返回到迭代器的第一個元素mysql
class AllUser implements \Iterator { protected $index = 0; protected $data = []; public function __construct() { $link = mysqli_connect('192.168.0.91', 'root', '123', 'xxx'); $rec = mysqli_query($link, 'select id from doc_admin'); $this->data = mysqli_fetch_all($rec, MYSQLI_ASSOC); } //1 重置迭代器 public function rewind() { $this->index = 0; } xxx //2 驗證迭代器是否有數據 public function valid() { return $this->index < count($this->data); } //3 獲取當前內容 public function current() { $id = $this->data[$this->index]; return User::find($id); } //4 移動key到下一個 public function next() { return $this->index++; } //5 迭代器位置key public function key() { return $this->index; } } //實現迭代遍歷用戶表 $users = new AllUser(); //可實時修改 foreach ($users as $user){ $user->add_time = time(); $user->save(); }