diff options
author | rojaro <> | 2009-11-01 21:32:45 +0000 |
---|---|---|
committer | rojaro <> | 2009-11-01 21:32:45 +0000 |
commit | 56d36fdd34e79ba1870f2d49c5dbd4ee3653cfbd (patch) | |
tree | 0cdba02beeb47afaeb3d4a3b9a151103fba9054d | |
parent | 704dd5ead2bf3a6858bb07f1186183c84210d307 (diff) |
TEnumerable can now be iterated as suggested by FragMaster B
-rw-r--r-- | framework/TComponent.php | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/framework/TComponent.php b/framework/TComponent.php index 2fc0ebff..647653dd 100644 --- a/framework/TComponent.php +++ b/framework/TComponent.php @@ -608,8 +608,34 @@ class TComponent * @package System * @since 3.0 */ -class TEnumerable +class TEnumerable implements Iterator { + private $_enums = array(); + + public function __construct() { + $reflection = new ReflectionClass($this); + $this->_enums = $reflection->getConstants(); + } + + public function current() { + return current($this->_enums); + } + + public function key() { + return key($this->_enums); + } + + public function next() { + return next($this->_enums); + } + + public function rewind() { + reset($this->_enums); + } + + public function valid() { + return $this->current() !== false; + } } /** |