If Iterator::valid() returns false, the foreach() loop will be terminated.
(PHP 5, PHP 7, PHP 8)
Iterator::valid — Checks if current position is valid
This method is called after Iterator::rewind() and Iterator::next() to check if the current position is valid.
This function has no parameters.
The return value will be casted to bool and then evaluated.
Returns true
on success or false
on failure.
If Iterator::valid() returns false, the foreach() loop will be terminated.
If your class implements also ArrayAccess interface, you could use as valid() body
function valid(){
return $this->offsetExists($this->position);
}