public function valid() { while (!$this->sources->current()->valid()) { $this->sources->next(); if (!$this->sources->valid()) { return false; } $this->sources->current()->rewind(); } return true; }