PHP迭代器实现斐波纳契数列的函数


Posted in PHP onNovember 12, 2013
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 相关文章推荐
第十四节--命名空间
Nov 16 PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
Dec 16 PHP
php实现首页链接查询 友情链接检查的代码
Jan 05 PHP
分享一个PHP数据流应用的简单例子
Jun 01 PHP
浅析PHP Socket技术
Aug 02 PHP
php利用cookie实现自动登录的方法
Dec 10 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
ThinkPHP框架里隐藏index.php
Apr 12 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
Nov 21 PHP
PHP反射原理与用法深入分析
Sep 28 PHP
PHP SPL使用方法和他的威力
Nov 12 #PHP
PHP使用SOAP调用.net的WebService数据
Nov 12 #PHP
php获取远程图片体积大小的实例
Nov 12 #PHP
php过滤XSS攻击的函数
Nov 12 #PHP
php获取新浪微博数据API实例
Nov 12 #PHP
php生成N个不重复的随机数实例
Nov 12 #PHP
三种php连接access数据库方法
Nov 11 #PHP
You might like
获取URL文件名后缀
2013/10/24 PHP
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
JavaScript 创建对象
2009/07/17 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
2013/06/25 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
Vue中自定义全局组件的实现方法
2017/12/08 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
让Python代码更快运行的5种方法
2015/06/21 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
python3实现高效的端口扫描
2019/08/31 Python
Django xadmin安装及使用详解
2020/10/26 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
同学聚会老师邀请函
2014/01/28 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
会议欢迎标语
2014/06/30 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
老乡会致辞
2015/07/28 职场文书
2016年大学生党员承诺书
2016/03/24 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python