国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

PHP SPL標準庫之接口_(Interface)詳解

2019-11-02 15:15:09
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了PHP SPL標準庫之接口(Interface)詳解,本文分別講解了Coutable接口、OuterIterator接口、RecursiveIterator接口、SeekableIterator接口、SplObserver和SplSubject接口等內容,需要的朋友可以參考下

  PHP SPL標準庫總共有6個接口,如下:

  1.Countable

  2.OuterIterator

  3.RecursiveIterator

  4.SeekableIterator

  5.SplObserver

  6.SplSubject

  其中OuterIterator、RecursiveIterator、SeekableIterator都是繼承Iterator類的,下面會對每種接口作用和使用進行詳細說明。

  Coutable接口:

  實現Countable接口的對象可用于count()函數計數。

  代碼如下:

  class Mycount implements Countable

  {

  public function count()

  {

  static $count = 0;

  $count++;

  return $count;

  }

  }

  $count = new Mycount();

  $count->count();

  $count->count();

  echo count($count); //3

  echo count($count); //4

  說明:

  調用count()函數時,Mycount::count()方法被調用

  count()函數的第二個參數將不會產生影響

  OuterIterator接口:

  自定義或修改迭代過程。

   代碼如下:

  //IteratorIterator是OuterIterator的一個實現類

  class MyOuterIterator extends IteratorIterator {

  public function current()

  {

  return parent::current() . 'TEST';

  }

  }

  foreach(new MyOuterIterator(new ArrayIterator(['b','a','c'])) as $key => $value) {

  echo "$key->$value".PHP_EOL;

  }

  /*

  結果:

  0->bTEST

  1->aTEST

  2->cTEST

  */

  在實際運用中,OuterIterator極其有用:

   代碼如下:

  $db = new PDO('mysql:host=localhost;dbname=test', 'root', 'mckee');

  $db->query('set names utf8');

  $pdoStatement = $db->query('SELECT * FROM test1', PDO::FETCH_ASSOC);

  $iterator = new IteratorIterator($pdoStatement);

  $tenRecordArray = iterator_to_array($iterator);

  print_r($tenRecordArray);

  RecursiveIterator接口:

  用于循環迭代多層結構的數據,RecursiveIterator另外提供了兩個方法:

  RecursiveIterator::getChildren 獲取當前元素下子迭代器

  RecursiveIterator::hasChildren 判斷當前元素下是否有迭代器

  代碼如下:

  class MyRecursiveIterator implements Recursi

高分經典電影[www.aikan.tv/xzhtml/12/]
veIterator

  {

  private $_data;

  private $_position = 0;

  public function __construct(array $data) {

  $this->_data = $data;

  }

  public function valid() {

  return isset($this->_data[$this->_position]);

  }

  public function hasChildren() {

  return is_array($this->_data[$this->_position]);

  }

  public function next() {

  $this->_position++;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台湾省| 贵溪市| 仪陇县| 无为县| 宜阳县| 凭祥市| 彭山县| 蓬溪县| 阿巴嘎旗| 中宁县| 于都县| 陵川县| 西平县| 绥棱县| 洛宁县| 玉林市| 仁寿县| 东源县| 绩溪县| 陈巴尔虎旗| 互助| 佛学| 定日县| 西畴县| 宿松县| 克拉玛依市| 崇信县| 毕节市| 营山县| 东光县| 广水市| 长顺县| 深泽县| 南漳县| 永平县| 永胜县| 那曲县| 佛冈县| 墨玉县| 中超| 马山县|