使用迭代器的方式求出1到10的三次方,并输出,demo如下:
<?php/** * 聚合式迭代器 * 返回一个实现了iterator接口的类的实例 * @author earnest * */class NumberCubic implements iteratorAggregate{ private $start,$end; public function __construct($start,$end) { $this->start = $start; $this->end = $end; } /** * @inheritDoc */ public function getIterator() { return new NumberCubicIterator($this); } public function getStart(){ return $this-&shentaigt;start; } public function getEnd(){ return $this->end; }}/** * 迭代器 * @author earnest * */class NumberCubicIterator implements Iterator{ private $obj,$cur; public function __construct($obj) { $this->obj = $obj; 鼬之死 } /** * @inheritDoc */ public function current() { return pow($this->cur,3); } /** * @inheritDoc */ public function next() { $this->cur++; } /** * @inheritDoc */ public function key() { return $this->cur; } /** * @inheritDoc */ public function valid() { return $this->cur <= $this->obj->getEnd(); } /** * @inheritDoc */ public fun我的教师生涯ction rewind() { $this->cur = $this->obj->getStart(); }}$NumberCubicList = new NumberCu贾岛的诗bic(1,10);foreach($NumberCubicList as $key => $v){ echo $key.' cubic number is '.$v.'<br/>';}
执行顺序: NumberCubic构造函数 NumberCubic 的getIterator()方法 NumberCubicIterato自制美白保湿面膜r构造函数生成NumImp对象 NumImp->rewind() 重新把迭代器执行列表开始处 NumImp->valid() 1 NumImp->current() 2 NumImp->key() 3 NumImp->next() 4 NumImp->valid() 1 NumImp->current() 2 继续循环
本文地址:https://blog.csdn.net/qq_24973351/article/details/109265531
本文发布于:2023-04-08 23:26:48,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/c128189d073905c6d763e04842420cfa.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:小话设计模式之 迭代器(PHP).doc
本文 PDF 下载地址:小话设计模式之 迭代器(PHP).pdf
留言与评论(共有 0 条评论) |