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 相关文章推荐
用PHP连接Oracle数据库
Oct 09 PHP
php Static关键字实用方法
Jun 04 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
Apr 08 PHP
PHP经典面试题集锦
Mar 19 PHP
在Debian系统下配置LNMP的教程
Jul 09 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
php微信开发接入
Aug 27 PHP
详谈php中 strtr 和 str_replace 的效率问题
May 14 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
实例讲解通过​PHP创建数据库
Jan 20 PHP
PHP下载文件函数与用法示例
Sep 27 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
php中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
javascript回调函数详解
2018/02/06 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Sublime开发python程序的示例代码
2018/01/24 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
如何通过命令行进入python
2020/07/06 Python
calendar在python3时间中常用函数举例详解
2020/11/18 Python
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
机电一体化自荐信
2013/12/10 职场文书
幼儿园保育员岗位职责
2014/04/13 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
2016入党心得体会范文
2016/01/06 职场文书
如何基于python实现单目三维重建详解
2022/06/25 Python