function ArgsStub::__construct
Overrides EnumStub::__construct
File
-
vendor/
symfony/ var-dumper/ Caster/ ArgsStub.php, line 25
Class
- ArgsStub
- Represents a list of function arguments.
Namespace
Symfony\Component\VarDumper\CasterCode
public function __construct(array $args, string $function, ?string $class) {
[
$variadic,
$params,
] = self::getParameters($function, $class);
$values = [];
foreach ($args as $k => $v) {
$values[$k] = !\is_scalar($v) && !$v instanceof Stub ? new CutStub($v) : $v;
}
if (null === $params) {
parent::__construct($values, false);
return;
}
if (\count($values) < \count($params)) {
$params = \array_slice($params, 0, \count($values));
}
elseif (\count($values) > \count($params)) {
$values[] = new EnumStub(array_splice($values, \count($params)), false);
$params[] = $variadic;
}
if ([
'...',
] === $params) {
parent::__construct($values[0]->value, false);
}
else {
parent::__construct(array_combine($params, $values));
}
}