@bakura10 The difference between `ArrayIterator` and `RecursiveArrayIterator` is that `RecursiveArrayIterator` implements the `hasChildren()` and `getChildren()` methods.

This class actually implements these methods itself, so it makes no sense to extend `RecursiveArrayIterator` and override these methods.