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实现读取和编写XML DOM代码
Apr 07 PHP
php+js实现异步图片上传实例分享
Jun 02 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
PHP创建/删除/复制文件夹、文件
May 03 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
Dec 14 PHP
CentOS系统中PHP安装扩展的方式汇总
Apr 09 PHP
利用laravel搭建一个迷你博客实战教程
Aug 13 PHP
php框架CodeIgniter使用redis的方法分析
Apr 13 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
Nov 22 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
深入探讨PHP中的内存管理问题
2011/08/31 PHP
php遍历目录方法小结
2015/03/10 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
2017/01/19 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
微信小程序实现简单表格
2019/02/14 Javascript
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
python3爬取淘宝信息代码分析
2018/02/10 Python
Python 实现选择排序的算法步骤
2018/04/22 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
Python eval函数原理及用法解析
2020/11/14 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
程序员岗位职责
2013/11/11 职场文书
迟到检讨书1000字
2014/01/15 职场文书
《骑牛比赛》教后反思
2014/04/22 职场文书
趣味运动会标语口号
2015/12/26 职场文书
导游词之西安骊山
2019/12/20 职场文书
在 SQL 语句中处理 NULL 值的方法
2021/06/07 SQL Server