PHP基于SPL实现的迭代器模式示例
本篇章节讲授PHP基于SPL实现的迭代器模式。分享给各人供各人参考,详细如下: 此刻有这么两个类,Department部分类、Employee员工类: _name = $name; $this->employees = array(); } function addEmployee(Employee $e){ $this->_employees[] = $e; echo "员工{$e->getName()}被分派到{$this->_name}中去"; } } //员工类 class Employee{ private $_name; function __construct($name){ $this->_name = $name; } function getName(){ return $this->_name; } } //应用: $lsgo = new Department('LSGO尝试室'); $e1 = new Employee("小锦"); $e2 = new Employee("小猪"); $lsgo->addEmployee($e1); $lsgo->addEmployee($e2);好了,此刻LSGO尝试室已经有两个部员了,此刻我想把所有的部员都列出来,就是用轮回来获取部分的每个员工的详情。 在这里我们用PHP中的SPL尺度库提供的迭代器来实现。 《》中如是说: 迭代器模式:迭代器模式是遍历荟萃的成熟模式,迭代器模式的要害是将遍历荟萃的使命交给一个叫做迭代器的工具,它的事变时遍历并选择序列中的工具,而客户端措施员不必知道或体谅该荟萃序列底层的布局。 迭代器模式的浸染简而言之:是使全部伟大数据布局的组件都可以行使轮回来会见 若是我们的工具要实现迭代,我们使这个类实现 Iterator(SPL尺度库提供),这是一个迭代器接口,为了实现该接口,我们必需实现以下要领:
实现了 Iterator 接口和划定的要领后,PHP就可以或许知道该类范例的工具必要迭代。 我们行使这种方法重构 Department 类: _name = $name; $this->employees = array(); $this->_position = 0; } function addEmployee(Employee $e) { $this->_employees[] = $e; echo "员工{$e->getName()}被分派到{$this->_name}中去"; } //实现 Iterator 接口要求实现的要领 function current() { return $this->_employees[$this->_position]; } function key() { return $this->_position; } function next() { $this->_position++; } function rewind() { $this->_position = 0; } function valid() { return isset($this->_employees[$this->_position]); } } //Employee 类同前 //应用: $lsgo = new Department('LSGO尝试室'); $e1 = new Employee("小锦"); $e2 = new Employee("小猪"); $lsgo->addEmployee($e1); $lsgo->addEmployee($e2); echo "LSGO尝试室部员环境:"; //这里着实遍历的$_employee foreach($lsgo as $val){ echo "部员{$val->getName()}"; }附加:若是此刻我们想要知道该部分有几个员工,假如是数组的话,一个 本文参考自《》 更多关于PHP相干内容感乐趣的读者可查察本站专题:《》、《》、《》、《》、《》、《》及《》 但愿本文所述对各人PHP措施计划有所辅佐。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |