3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { public function flatten() { $data = func_get_args(); return array_reduce($data, function($c, $a){ return array_merge($c, is_array($a) ?$this->flatten(...$a) : [$a]); }, []) ; } } var_dump((new Foo())->flatten(1)); var_dump((new Foo())->flatten()); var_dump((new Foo())->flatten(1, [2], [3, [4,5]]));

preferences:
35.88 ms | 402 KiB | 5 Q