current; } public function key(): mixed { return spl_object_id($this->current); } private function moveNext(): void { if($this->wasValid = $this->result->next()) $this->current = ($this->construct)($this->result); } public function next(): void { $this->moveNext(); } public function rewind(): void { $this->moveNext(); } public function valid(): bool { return $this->wasValid; } }