3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Wrapper { public function foo (&...$args) { return $this->dostuff(...$args); } public function dostuff($param1, $param2, &$arr) { $arr[] = $param1; $arr[] = $param2; return count($arr); } } $values = [1,2]; $a=3; $b=4; $obj = new Wrapper(); #all parameter must be variables here because there are by ref now $count = $obj->foo($a,$b, $values); echo "Elements count: $count\r\n"; print_r($values); //Expected [1,2,3,4]
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
Elements count: 4 Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )

preferences:
83.45 ms | 402 KiB | 91 Q