迭代器模式及其php實作(Yii框架)

伊谢尔伦
發布: 2023-03-02 18:52:01
原創
1233 人瀏覽過

迭代器模式是一種行為型模式,它是一種最簡單也最常見的設計模式。它可以讓使用者透過特定的介面巡訪容器中的每一個元素而不用了解底層的實際操作。

適用性

在希望利用語言本身的遍歷函數方便自訂結構時,例如PHP中的foreach函數

類圖

迭代器模式及其php實作(Yii框架)

PHPee

rrrereee

在Yee Yii框架中的我們可以看到其迭代器的實現,在collections目錄下的CMapIterator.php檔案中,其實現如下:

<?php
class sample implements Iterator {
   private $_items ;

   public function __construct(&$data) {
       $this->_items = $data;
   }
   public function current() {
       return current($this->_items);
   }

   public function next() {
       next($this->_items);   
   }

   public function key() {
       return key($this->_items);
   }

   public function rewind() {
       reset($this->_items);
   }

   public function valid() {                                                                              
       return ($this->current() !== FALSE);
   }
}

// client
$data = array(1, 2, 3, 4, 5);
$sa = new sample($data);
foreach ($sa AS $key => $row) {
   echo $key, &#39; &#39;, $row, &#39;<br />&#39;;
}
?>
登入後複製

這與先前的簡單實作相比,其位置的變化是透過控制key來實現的,這種實現的作用是為了避免false作為數組值時無法迭代。

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