3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Thing { public function __construct($one, $two, $three) { var_dump($one, $two, $three); } } abstract class VarArgsFactory { public function __construct() { $this->reflector = new \ReflectionClass($this->getClassName()); } public function create() { return $this->reflector->newInstanceArgs(func_get_args()); } abstract public function getClassName(); } class ThingFactory extends VarArgsFactory { public function getClassName() { return Thing::class; } } (new ThingFactory)->create(1, 2, 3);

preferences:
37.19 ms | 402 KiB | 5 Q