Domanda

I am trying to understand something about ArrayObject and ArrayIterator classes

ArrayObject: This class implements the IteratorAggregate and Traversable interfaces. Since IteratorAggregate extends Traversable itself, why does ArrayObject implement both when it can just implement IteratorAggregate?

ArrayIterator: As above, this class implements both Iterator and Traversable which Iterator extends.

Why do these classes implement two interfaces when they could get away with implementing the one that extends Traversable?

È stato utile?

Soluzione

According to the SPL source code, ArrayObject doesn't implement Traversable directly:

class ArrayObject implements IteratorAggregate, ArrayAccess, Countable
{
    ...
}

This matches the SPL documentation. I believe DaveRandom is correct.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top