If your class implements also ArrayAccess interface, you could use as valid() body
function valid(){
return $this->offsetExists($this->position);
}
(PHP 5 >= 5.0.0, PHP 7)
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 boolean and then evaluated.
Returns TRUE
on success or FALSE
on failure.
If your class implements also ArrayAccess interface, you could use as valid() body
function valid(){
return $this->offsetExists($this->position);
}
If Iterator::valid() returns false, the foreach() loop will be terminated.