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 zend 相对路径问题
Jan 12 PHP
PHP 加密与解密的斗争
Apr 17 PHP
php中大括号作用介绍
Mar 22 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
一个严格的PHP Session会话超时时间设置方法
Jun 10 PHP
php利用scws实现mysql全文搜索功能的方法
Dec 25 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
php mysql 封装类实例代码
Sep 18 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
浅谈PHP进程管理
Mar 08 PHP
laravel 获取当前url的别名方法
Oct 11 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中的登陆login
2007/01/18 PHP
Snoopy类使用小例子
2008/04/15 PHP
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
PHP 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
python基础教程项目三之万能的XML
2018/04/02 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
优秀党员先进材料
2014/12/18 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书