首頁 > 後端開發 > php教程 > PHP Iterable介面

PHP Iterable介面

PHPz
發布: 2023-08-20 14:50:01
轉載
934 人瀏覽過

PHP Iterable接口

介紹

Iterator 介面擴充了抽象的Traversable介面。 PHP提供了許多內建的迭代器(稱為SPL迭代器)用於許多常見功能。例如ArrayIteratorDirectoryIterator等。實作Iterator介面的使用者類別應該實作其中定義的抽象方法。

語法

Iterator extends Traversable {
   /* Methods */
   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
}
登入後複製

方法

Iterator::current — 傳回目前元素

Iterator::key — 傳回目前元素的鍵

#Iterator::next — 移動到下一個元素

Iterator::rewind — 將迭代器倒回第一個元素

Iterator::valid — 檢查目前位置是否有效

在實作IteratorAggregateIterator 介面時,必須在implements 子句中將它們列在其名稱之前。

迭代器範例

在下面的PHP腳本中,一個實作了介面的類別包含一個私有變數作為陣列。透過實作迭代器的抽象方法,我們可以使用 foreach 迴圈和 next() 方法來遍歷陣列。

範例

<?php
class myIterator implements Iterator {
   private $index = 0;
   private $arr = array(10,20,30,40);
   public function __construct() {
      $this->index = 0;
   }
   public function rewind() {
      $this->index = 0;
   }
   public function current() {
      return $this->arr[$this->index];
   }
   public function key() {
      return $this->index;
   }
   public function next() {
      ++$this->index;
   }
   public function valid() {
      return isset($this->arr[$this->index]);
   }
}
?>
登入後複製

使用foreach循環,我們可以迭代MyIterator物件的陣列屬性

$it = new myIterator();
foreach($it as $key => $value) {
   echo "$key=>". $value ."</p><p>";
}
登入後複製

迭代也可以透過在while循環中呼叫next()方法來執行。在開始循環之前,請確保rewind迭代器。

範例

$it->rewind();
do {
   echo $it->key() . "=>" .$it->current() . "</p><p>";
   $it->next();
}
while ($it->valid());
登入後複製

輸出

在兩種情況下,對陣列屬性的遍歷顯示下列結果

0=>10
1=>20
2=>30
3=>40
登入後複製

以上是PHP Iterable介面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板