%PDF- %PDF-
Direktori : /www/varak.net/losik.varak.net/vendor/dibi/dibi/src/Dibi/ |
Current File : //www/varak.net/losik.varak.net/vendor/dibi/dibi/src/Dibi/ResultIterator.php |
<?php /** * This file is part of the Dibi, smart database abstraction layer (https://dibiphp.com) * Copyright (c) 2005 David Grudl (https://davidgrudl.com) */ declare(strict_types=1); namespace Dibi; /** * External result set iterator. */ class ResultIterator implements \Iterator, \Countable { use Strict; /** @var Result */ private $result; /** @var mixed */ private $row; /** @var int */ private $pointer = 0; public function __construct(Result $result) { $this->result = $result; } /** * Rewinds the iterator to the first element. */ public function rewind(): void { $this->pointer = 0; $this->result->seek(0); $this->row = $this->result->fetch(); } #[\ReturnTypeWillChange] /** * Returns the key of the current element. * @return mixed */ public function key() { return $this->pointer; } #[\ReturnTypeWillChange] /** * Returns the current element. * @return mixed */ public function current() { return $this->row; } /** * Moves forward to next element. */ public function next(): void { $this->row = $this->result->fetch(); $this->pointer++; } /** * Checks if there is a current element after calls to rewind() or next(). */ public function valid(): bool { return !empty($this->row); } /** * Required by the Countable interface. */ public function count(): int { return $this->result->getRowCount(); } }