data = $initial_value; } /* -( Conversion )--------------------------------------------------------- */ public function toArray() { return iterator_to_array($this, true); } /* -( Countable Interface )------------------------------------------------ */ public function count() { return count($this->data); } /* -( Iterator Interface )------------------------------------------------- */ public function current() { return current($this->data); } public function key() { return key($this->data); } public function next() { return next($this->data); } public function rewind() { reset($this->data); } public function valid() { return (key($this->data) !== null); } /* -( ArrayAccess Interface )---------------------------------------------- */ public function offsetExists($key) { return array_key_exists($key, $this->data); } public function offsetGet($key) { return $this->data[$key]; } public function offsetSet($key, $value) { $this->data[$key] = $value; } public function offsetUnset($key) { unset($this->data[$key]); } }