<?php
class FooIterator extends ArrayIterator{
function __construct(){ throw new Error; }
}
class Foo implements IteratorAggregate{
function getIterator(){
return new FooIterator();
}
}
function baz(){
$x = new Foo;
foreach($x as $y => $z);
}
baz();
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/NBE5C on line 8
Fatal error: Uncaught Error in /in/NBE5C:4
Stack trace:
#0 /in/NBE5C(9): FooIterator->__construct()
#1 /in/NBE5C(15): Foo->getIterator()
#2 /in/NBE5C(18): baz()
#3 {main}
thrown in /in/NBE5C on line 4
Process exited with code 255.
Fatal error: Uncaught Error in /in/NBE5C:4
Stack trace:
#0 /in/NBE5C(9): FooIterator->__construct()
#1 /in/NBE5C(15): Foo->getIterator()
#2 /in/NBE5C(18): baz()
#3 {main}
thrown in /in/NBE5C on line 4
Process exited with code 255.