首頁  >  文章  >  後端開發  >  迭代器模式及其php實作(Yii框架)

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

伊谢尔伦
伊谢尔伦原創
2016-12-01 13:05:571222瀏覽

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

適用性

在希望利用語言本身的遍歷函數方便自訂結構時,例如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作為數組值時無法迭代。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn