3v4l.org

run code in 300+ PHP versions simultaneously
<?php class foo implements IteratorAggregate { public function getIterator(){ return new class implements IteratorAggregate{ public function getIterator(){ yield from [1, 2, 3]; } }; } } function iterator(Iterable $iterable): Iterator{ return $iterable instanceof Iterator ? $iterable : iterator($iterable->getIterator()); } $foo = new foo; $iterator = iterator($foo->getIterator()); foreach($iterator as $a) echo $a;
Output for git.master, git.master_jit, rfc.property-hooks
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/Xfhmj on line 5 Deprecated: Return type of IteratorAggregate@anonymous::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/Xfhmj on line 7 123

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
63.62 ms | 402 KiB | 8 Q