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