ArrayIterator->current() is supposed to return null after end of array

Because current() return false on failure and key() returns null because who needs to follow any rules?