3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Test implements Iterator { public function current() { return "value"; } public function key() { return new stdClass; } public function next() { } public function rewind() { } public function valid() { return true; } } $test = new Test; foreach ($test as $key => $value) { var_dump($key, $value); break; }
Output for git.master, git.master_jit, rfc.property-hooks
Deprecated: Return type of Test::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/VU5Df on line 5 Deprecated: Return type of Test::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/VU5Df on line 15 Deprecated: Return type of Test::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/VU5Df on line 10 Deprecated: Return type of Test::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/VU5Df on line 25 Deprecated: Return type of Test::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/VU5Df on line 20 object(stdClass)#3 (0) { } string(5) "value"

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:
36.88 ms | 403 KiB | 8 Q