一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP預定義接口——Iterator用法示例

PHP預定義接口——Iterator用法示例

2021-10-16 16:35WencoChen PHP教程

這篇文章主要介紹了PHP預定義接口——Iterator用法,結合實例形式分析了PHP Iterator(迭代器)接口相關原理、定義與使用方法,需要的朋友可以參考下

本文實例講述了PHP預定義接口——Iterator用法。分享給大家供大家參考,具體如下:

Iterator(迭代器)接口

可在內部迭代自己的外部迭代器或類的接口。

接口摘要

?
1
2
3
4
5
6
7
8
Iterator extends Traversable {
    /* 方法 */
    abstract public current ( void ) : mixed
    abstract public key ( void ) : scalar
    abstract public next ( void ) : void
    abstract public rewind ( void ) : void
    abstract public valid ( void ) : bool
}

例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
class myIterator implements Iterator
{
  private $position = 0;
  private $array = array(
    'first_element',
    'second_element',
    'last_element',
  );
 
  /**
   * 重置鍵的位置
   */
  public function rewind(): void
  {
    var_dump(__METHOD__);
    $this->position = 0;
  }
 
  /**
   * 返回當前元素
   */
  public function current()
  {
    var_dump(__METHOD__);
    return $this->array[$this->position];
  }
 
  /**
   * 返回當前元素的鍵
   * @return int
   */
  public function key(): int
  {
    var_dump(__METHOD__);
    return $this->position;
  }
 
  /**
   * 將鍵移動到下一位
   */
  public function next(): void
  {
    var_dump(__METHOD__);
    ++$this->position;
  }
 
  /**
   * 判斷鍵所在位置的元素是否存在
   * @return bool
   */
  public function valid(): bool
  {
    var_dump(__METHOD__);
    return isset($this->array[$this->position]);
  }
}
 
$it = new myIterator;
 
foreach ($it as $key => $value) {
  var_dump($key, $value);
  echo "\n";
}

輸出結果:

string 'myIterator::rewind' (length=18)
string 'myIterator::valid' (length=17)
string 'myIterator::current' (length=19)
string 'myIterator::key' (length=15)
int 0
string 'first_element' (length=13)
string 'myIterator::next' (length=16)
string 'myIterator::valid' (length=17)
string 'myIterator::current' (length=19)
string 'myIterator::key' (length=15)
int 1
string 'second_element' (length=14)
string 'myIterator::next' (length=16)
string 'myIterator::valid' (length=17)
string 'myIterator::current' (length=19)
string 'myIterator::key' (length=15)
int 2
string 'last_element' (length=12)
string 'myIterator::next' (length=16)
string 'myIterator::valid' (length=17)

由結果可知,當類實現了Iterator接口,實現改類實例數據集的時候首先會將數據集的鍵重置,然后逐步后移,每次都會進行然后返回當前元素以及當前鍵。

希望本文所述對大家PHP程序設計有所幫助。

原文鏈接:https://blog.csdn.net/Wenco1/article/details/97154611

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: x8x8在线观看| 色一情一乱一伦 | 欧美亚洲国产综合在线 | 2018生活片性色生活片 | 2018av在线| 赤坂丽女医bd无删减在线观看 | 欧美老肥妇bbbw| 99久久精品免费精品国产 | 四虎永久免费地址在线观看 | 日本高清在线看 | 日日艹 | h黑寡妇一级毛片 | 午夜福利体验免费体验区 | 日韩欧美推理片免费在线播放 | 香蕉国产人午夜视频在线 | 久久伊人影视 | 99精品国产成人a∨免费看 | 羞羞漫画免费漫画页面在线看漫画秋蝉 | 91大神亚洲影视在线 | 精品精品国产yyy5857香蕉 | 久久99国产精品二区不卡 | 帅老头恋帅老头同性tv | 99这里只有精品66视频 | 日韩久久中文字幕 | 久青草国产在线观看视频 | h杯奶水太多h | narutomanga玖辛奈之乳 | 免费特黄视频 | 色综合伊人色综合网亚洲欧洲 | 脱了白丝校花的内裤猛烈进入 | 嗯啊视频在线 | 大胸美女被c | 精品91自产拍在线观看99re | 7mav视频| ange venus与黑人 | 农村老妇1乱69系列小说 | 思思玖玖 | 91庥豆果冻天美精东蜜桃传媒 | 成年男女免费视频网站 | 国产高清一区二区 | 日本一区二区三区四区无限 |