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中文字母数字验证码实现代码
Apr 25 PHP
PHP中函数内引用全局变量的方法
Oct 20 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
PHP实现中文圆形印章特效
Jun 19 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
Nov 05 PHP
thinkPHP查询方式小结
Jan 09 PHP
Laravel学习基础之migrate的使用教程
Oct 11 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
Aug 06 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
星际争霸任务指南——虫族
2020/03/04 星际争霸
MySql中正则表达式的使用方法描述
2008/07/30 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
初识JQuery 实例一(first)
2011/03/16 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
JS触摸事件、手势事件详解
2017/05/04 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
python主线程捕获子线程的方法
2018/06/17 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
《问银河》教学反思
2014/02/19 职场文书
青年文明号创建承诺
2014/03/31 职场文书
小学生家长寄语
2014/04/02 职场文书
家长给学校的建议书
2014/05/15 职场文书
运动会标语
2014/06/21 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
家访教师心得体会
2016/01/23 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL