Before the first iteration of the loop, Iterator::rewind() is called. 2. Before ... The loop isn't terminated until Iterator::valid() returns false or the body of the loop executes a break statement.
php.net