Deprecated: Return type of MyIterator::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/cNNqs on line 19
Deprecated: Return type of MyIterator::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/cNNqs on line 33
Deprecated: Return type of MyIterator::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/cNNqs on line 26
Deprecated: Return type of MyIterator::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/cNNqs on line 40
Deprecated: Return type of MyIterator::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/cNNqs on line 13
Deprecated: Return type of MyCollection::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/cNNqs on line 58
rewinding
valid: 1
current: value 1
key: 0
key/value: [0 -> value 1]
next: value 2
valid: 1
current: value 2
key: 1
key/value: [1 -> value 2]
next: value 3
valid: 1
current: value 3
key: 2
key/value: [2 -> value 3]
next:
valid: