<?php
namespace aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc;
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();
}
function lol(){
rofl();
}
lol();
Deprecated: Return type of aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\Foo::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/4bbbM on line 10
Fatal error: Uncaught Exception in /in/4bbbM:6
Stack trace:
#0 /in/4bbbM(11): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\FooIterator->__construct()
#1 /in/4bbbM(17): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\Foo->getIterator()
#2 /in/4bbbM(21): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\baz()
#3 /in/4bbbM(25): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\bar()
#4 /in/4bbbM(29): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\rofl()
#5 /in/4bbbM(32): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\lol()
#6 {main}
thrown in /in/4bbbM on line 6
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Deprecated: Return type of aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\Foo::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/4bbbM on line 10
Fatal error: Uncaught Exception in /in/4bbbM:6
Stack trace:
#0 /in/4bbbM(11): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\FooIterator->__construct()
#1 /in/4bbbM(17): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\Foo->getIterator()
#2 /in/4bbbM(21): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\baz()
#3 /in/4bbbM(25): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\bar()
#4 /in/4bbbM(29): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\rofl()
#5 /in/4bbbM(32): aaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbb\cccccccccccccccccccccccccccccccc\lol()
#6 {main}
thrown in /in/4bbbM on line 6
Process exited with code 255.