data); } function _current() { return current($this->data); } function rewind() { if ($this->data === null) { $this->valid = false; } else { $first = reset($this->data); $this->valid = $first !== false || key($this->data) !== null; } } function next() { $next = next($this->data); $this->valid = $next !== false || key($this->data) !== null; } function valid() { return $this->valid; } }