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 self,$this,const,static,->的使用
Oct 22 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
Jun 17 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
PHP原生函数一定好吗?
Dec 08 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 PHP
PHP设计模式之工厂模式详解
Oct 24 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
Apr 02 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
Dec 04 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中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
JavaScript 中的事件教程
2007/04/05 Javascript
JavaScript 继承的实现
2009/07/09 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
2013/11/26 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
jQuery中height()方法用法实例
2014/12/24 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
详解使用mocha对webpack打包的项目进行"冒烟测试"的大致流程
2020/04/27 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
python求众数问题实例
2014/09/26 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
从0开始的Python学习016异常
2019/04/08 Python
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
建筑设计所实习生自我鉴定
2013/09/25 职场文书
人力资源管理毕业生自荐信
2013/11/21 职场文书
计算机专业毕业生自我鉴定
2014/01/16 职场文书
教师个人鉴定材料
2014/02/08 职场文书
社会实践评语
2014/04/28 职场文书
爬山的活动方案
2014/08/16 职场文书
优秀教师单行材料
2014/12/16 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技