* @copyright (c) 2019, conlite.org * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version) * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version) * @link http://www.conlite.org ConLite.org * * $Id$ */ // security check defined('CON_FRAMEWORK') or die('Illegal call'); class cIterator { /** * Holds the items which should be iterated * @var array */ var $_aIteratorItems; /** * Holds the keys of the array which should be iterated * * @var array */ protected $_aKeys; /** * * @param array $aItems items to add */ public function __construct($aItems) { if (is_array($aItems)) { $this->_aIteratorItems = $aItems; } else { $this->_aIteratorItems = array(); } $this->reset(); } /** * reset: Resets the iterator to the first element * * This function moves the iterator to the first element * * @return none */ function reset() { $this->_aKeys = array_keys($this->_aIteratorItems); } /** * next: Returns the next item in the iterator * * This function returns the item, or false if no * items are left. * * @return mixed item or false if nothing was found */ function next() { $key = array_shift($this->_aKeys); return isset($this->_aIteratorItems[$key]) ? $this->_aIteratorItems[$key] : false; } /** * count: Returns the number of items in the iterator * * @return int Number of items */ function count() { if(is_countable($this->_aIteratorItems)) { return count($this->_aIteratorItems); } return 0; } } ?>