| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | <?phpnamespace PhpOffice\PhpSpreadsheet\Worksheet;use PhpOffice\PhpSpreadsheet\Spreadsheet;class Iterator implements \Iterator{    /**     * Spreadsheet to iterate.     *     * @var Spreadsheet     */    private $subject;    /**     * Current iterator position.     *     * @var int     */    private $position = 0;    /**     * Create a new worksheet iterator.     *     * @param Spreadsheet $subject     */    public function __construct(Spreadsheet $subject)    {        // Set subject        $this->subject = $subject;    }    /**     * Destructor.     */    public function __destruct()    {        unset($this->subject);    }    /**     * Rewind iterator.     */    public function rewind()    {        $this->position = 0;    }    /**     * Current Worksheet.     *     * @return Worksheet     */    public function current()    {        return $this->subject->getSheet($this->position);    }    /**     * Current key.     *     * @return int     */    public function key()    {        return $this->position;    }    /**     * Next value.     */    public function next()    {        ++$this->position;    }    /**     * Are there more Worksheet instances available?     *     * @return bool     */    public function valid()    {        return $this->position < $this->subject->getSheetCount() && $this->position >= 0;    }}
 |