<?php
class Foo implements IteratorAggregate
{
public function getIterator()
{
return 0;
}
}
$foo = new Foo();
$i = new RecursiveTreeIterator($foo);
foreach ($i as $val) {
echo $val;
}
Deprecated: Return type of Foo::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/V6pgB on line 5
Fatal error: Uncaught LogicException: Foo::getIterator() must return an object that implements Traversable in /in/V6pgB:12
Stack trace:
#0 /in/V6pgB(12): RecursiveTreeIterator->__construct(Object(Foo))
#1 {main}
thrown in /in/V6pgB on line 12
Process exited with code 255.
Output for 8.0.10 - 8.0.30
Fatal error: Uncaught LogicException: Foo::getIterator() must return an object that implements Traversable in /in/V6pgB:12
Stack trace:
#0 /in/V6pgB(12): RecursiveTreeIterator->__construct(Object(Foo))
#1 {main}
thrown in /in/V6pgB on line 12
Process exited with code 255.
Output for 8.0.0 - 8.0.9
Fatal error: Uncaught TypeError: RecursiveCachingIterator::__construct(): Argument #1 ($iterator) must be of type RecursiveIterator, int given in /in/V6pgB:12
Stack trace:
#0 [internal function]: RecursiveCachingIterator->__construct(0, 16)
#1 /in/V6pgB(12): RecursiveTreeIterator->__construct(Object(Foo))
#2 {main}
thrown in /in/V6pgB on line 12
Process exited with code 255.
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
Fatal error: Uncaught TypeError: RecursiveCachingIterator::__construct() expects parameter 1 to be RecursiveIterator, int given in /in/V6pgB:12
Stack trace:
#0 [internal function]: RecursiveCachingIterator->__construct(0, 16)
#1 /in/V6pgB(12): RecursiveTreeIterator->__construct(Object(Foo))
#2 {main}
thrown in /in/V6pgB on line 12
Process exited with code 255.
Fatal error: Uncaught TypeError: RecursiveCachingIterator::__construct() expects parameter 1 to be RecursiveIterator, integer given in /in/V6pgB:12
Stack trace:
#0 [internal function]: RecursiveCachingIterator->__construct(0, 16)
#1 /in/V6pgB(12): RecursiveTreeIterator->__construct(Object(Foo))
#2 {main}
thrown in /in/V6pgB on line 12
Process exited with code 255.
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'RecursiveCachingIterator::__construct() expects parameter 1 to be RecursiveIterator, integer given' in /in/V6pgB:12
Stack trace:
#0 [internal function]: RecursiveCachingIterator->__construct(0, 16)
#1 /in/V6pgB(12): RecursiveTreeIterator->__construct(Object(Foo))
#2 {main}
thrown in /in/V6pgB on line 12
Process exited with code 255.