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 相关文章推荐
将OICQ数据转成MYSQL数据
Oct 09 PHP
php下过滤html代码的函数 提高程序安全性
Mar 02 PHP
给ECShop添加最新评论
Jan 07 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
php轻松实现文件上传功能
Mar 03 PHP
Laravel框架实现发送短信验证功能代码
Jun 06 PHP
PHP+Apache+Mysql环境搭建教程
Aug 01 PHP
php封装的smarty类完整实例
Oct 19 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
Sep 29 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 PHP
TP3.2.3框架文件上传操作实例详解
Jan 23 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下封装较好的数字分页方法
2010/11/23 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
php创建类并调用的实例方法
2019/09/25 PHP
JavaScript中实现map功能代码分享
2015/06/11 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
vue2 前端搜索实现示例
2018/02/26 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
开源Web应用框架Django图文教程
2017/03/09 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
Python实现线程状态监测简单示例
2018/03/28 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
python能做什么 python的含义
2019/10/12 Python
Python模块的制作方法实例分析
2019/12/21 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
学校安全检查制度
2014/01/27 职场文书
吃空饷专项治理工作实施方案
2014/03/04 职场文书
高温慰问简报
2015/07/21 职场文书