* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Grid\Collection; use Countable; use Iterator; /** * Class AbstractCollection is responsible for providing base collection implementation. */ abstract class AbstractCollection implements Iterator, Countable { /** * @var array */ protected $items = []; /** * {@inheritdoc} */ #[\ReturnTypeWillChange] public function current() { return current($this->items); } /** * {@inheritdoc} */ public function next(): void { next($this->items); } /** * {@inheritdoc} */ #[\ReturnTypeWillChange] public function key() { return key($this->items); } /** * {@inheritdoc} */ public function valid(): bool { return false !== $this->current(); } /** * {@inheritdoc} */ public function rewind(): void { reset($this->items); } /** * {@inheritdoc} */ public function count(): int { return count($this->items); } }