用PHP迭代器来实现一个斐波纳契数列
2012-07-02 00:00
387 查看
斐波纳契数列通常做法是用递归实现,当然还有其它的方法。这里现学现卖,用PHP的迭代器来实现一个斐波纳契数列,几乎没有什么难度,只是把类里的next()方法重写了一次。注释已经写到代码中,也是相当好理解的。
程序运行结果:
看看PHP迭代器的内部执行过程
用PHP迭代器来实现一个斐波纳契数列
PHP SPL,被遗落的宝石
PHP数据结构预热:PHP的迭代器
PHP Predefined Interfaces 预定义接口
/** * @author 简明现代魔法 http://www.nowamagic.net */ class Fibonacci implements Iterator { private $previous = 1; private $current = 0; private $key = 0; public function current() { return $this->current; } public function key() { return $this->key; } public function next() { // 关键在这里 // 将当前值保存到 $newprevious $newprevious = $this->current; // 将上一个值与当前值的和赋给当前值 $this->current += $this->previous; // 前一个当前值赋给上一个值 $this->previous = $newprevious; $this->key++; } public function rewind() { $this->previous = 1; $this->current = 0; $this->key = 0; } public function valid() { return true; } } $seq = new Fibonacci; $i = 0; foreach ($seq as $f) { echo "$f "; if ($i++ === 15) break; }
程序运行结果:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
延伸阅读
此文章所在专题列表如下:看看PHP迭代器的内部执行过程
用PHP迭代器来实现一个斐波纳契数列
PHP SPL,被遗落的宝石
PHP数据结构预热:PHP的迭代器
PHP Predefined Interfaces 预定义接口
相关文章推荐
- 用PHP迭代器来实现一个斐波纳契数列(转)
- 用PHP迭代器来实现一个斐波纳契数列
- 用PHP迭代器来实现一个斐波纳契数列
- PHP迭代器实现斐波纳契数列的函数
- PHP迭代器实现斐波纳契数列的函数
- PHP+ajax实现注册的一个完整的例子
- 用PHP实现一个Amazon SES的代理服务器
- php中一个用箭头实现的上下排序的函数
- 用PHP实现一个双向队列
- 一个最符合中国国情的工作流设计参考(包括PHP实现)
- 一个真正符合中国国情的工作流设计参考(包括PHP实现)
- PHP 实现代码复用的一个方法 traits新特性
- PHP 迭代器模式 一个简单的迭代器
- 一个用php实现密码强度检测的类
- php实现一个简单的四则运算计算器
- 使用php后台给自己做一个页面路由,配合ajax实现局部刷新。
- PHP实现一个简单url路由功能实例
- 如何用PHP来实现一个动态Web服务器
- PHP实现一个ip(如:127.0.0.1)和多个域名(虚拟主机)的绑定
- 一个真正符合中国国情的工作流设计参考(包括PHP实现)