PHP设计模式之迭代器(Iterator)模式入门与应用详(3)

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面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3931.html