Iterator modeTraverses the internal elements of an aggregate object without knowing the internals. Compared with the traditional programming mode, Iterator mode can hide the elements of the traversed All operations
<?php /* * 迭代器模式 */ class All implements \Iterator { protected $ids; protected $index; public function __construct($data) { $this->ids = $data; } public function current() //获取当前的元素 { return $this->ids[$this->index]; } public function next() //获取下一个元素 { $this->index++; } public function valid() //验证当下是否还有下一个元素 { return $this->index < count($this->ids); } public function rewind() //重置迭代器指针 { $this->index = 0; } public function key() //迭代器指针的位置 { return $this->index; } } $arr = ['1', '2', '4']; //客户端 $users = new All($arr); foreach ($users as $user) { var_dump($user); }
The iterator pattern is a very frequently used design pattern. By introducing iterators, the data traversal function can be separated from the aggregate object, and the aggregation The object is only responsible for storing data, and traversing the data is completed by iterators
Related recommendations:
StarCraft php iterator pattern
PHP variable reference PHP iterator pattern (reference SPL implementation)
php design pattern observer pattern Detailed explanation
The above is the detailed content of Detailed explanation of the iterator pattern of PHP design patterns. For more information, please follow other related articles on the PHP Chinese website!