3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { protected $foo = 'foo'; public function iterate(Foo $thing) { $r = []; foreach ($thing as $prop) { $r[] = $prop; } return $r; } } class Bar extends Foo { protected $bar = 'bar'; } class Baz extends Foo { protected $baz = 'baz'; } var_dump((new Foo)->iterate(new Foo)); var_dump((new Bar)->iterate(new Bar)); var_dump((new Baz)->iterate(new Baz)); var_dump((new Bar)->iterate(new Baz)); var_dump((new Baz)->iterate(new Bar));

preferences:
69.51 ms | 402 KiB | 5 Q