subject = $subject; } /** * Destructor. */ public function __destruct() { unset($this->subject); } /** * Rewind iterator. */ public function rewind() : void { $this->position = 0; } /** * Current Worksheet. * * @return Worksheet */ public function current() : mixed { return $this->subject->getSheet($this->position); } /** * Current key. * * @return int */ public function key() : mixed { return $this->position; } /** * Next value. */ public function next() : void { ++$this->position; } /** * Are there more Worksheet instances available? * * @return bool */ public function valid() : bool { return $this->position < $this->subject->getSheetCount() && $this->position >= 0; } }