<?php class User { public function register($email, $password, $active = null, $default = 0, ...$attributes) { $defined_vars = get_defined_vars(); print_r(['$defined_vars'=>$defined_vars]); $argc = func_num_args(); $argv = func_get_args(); $__mockery__argc = 0; $__mockery__argv = []; $__mockery__argv_named = []; foreach ((new ReflectionMethod(__CLASS__, __FUNCTION__))->getParameters() as $__mockery__parameter) { $__mockery__name = $__mockery__parameter->getName(); $__mockery__values = $defined_vars[$__mockery__name]; unset($defined_vars[$__mockery__name]); if (! $__mockery__parameter->isVariadic()) { $__mockery__argv_named[$__mockery__name] = $__mockery__values; $__mockery__argv[$__mockery__parameter->getPosition()] = $__mockery__values; ++$__mockery__argc; continue; } foreach($__mockery__values as $__mockery__key => $__mockery__value) { $__mockery__argv_named[$__mockery__key] = $__mockery__value; $__mockery__argv[$__mockery__argc++] = $__mockery__value; } } print_r([ '$argc' => $argc, '$argv' => $argv, '$__mockery__argc'=>$__mockery__argc, '$__mockery__argv' => $__mockery__argv, '$__mockery__argv_named' => $__mockery__argv_named, ]); return [$email, $password, $attributes]; } } $foo = new User(); $foo->register('admin@test.com', 'pass1', ...[ 'id' => 'uuid-1', 'phone' => '012-345-6789', 'role' => 'admin', ]); echo PHP_EOL.'--------'.PHP_EOL; $foo->register(...[ 'id' => 'uuid-2', 'email' => 'test@test.com', 'phone' => '987-654-3210', 'name' => 'first last2', 'role' => 'tester', 'password' => 'pass2' ]);
You have javascript disabled. You will not be able to edit any code.