return $propertyScopes;
} private static function exportDefault(\ReflectionParameter
$param): string
{ $default =
rtrim(substr(explode('$'.
$param->name.' = ',
(string) $param, 2
)[1
] ?? '', 0, -2
));
if (\
in_array($default,
['<default>', 'NULL'
], true
)) { return 'null';
} if (str_ends_with($default, "...'"
) &&
preg_match("/^'(?:[^'\\\\]*+(?:\\\\.)*+)*+'$/",
$default)) { return VarExporter::
export($param->
getDefaultValue());
} $regexp = "/(\"(?:[^\"\\\\]*+(?:\\\\.)*+)*+\"|'(?:[^'\\\\]*+(?:\\\\.)*+)*+')/";
$parts =
preg_split($regexp,
$default, -1, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY
);
$regexp = '/([\[\( ]|^)([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z0-9_\x7f-\xff]++)*+)(?!: )/';
$callback =
(false !==
strpbrk($default, "\\:('"
) &&
$class =
$param->
getDeclaringClass()) ?
fn ($m) =>
$m[1
].
match ($m[2
]) { 'new', 'false', 'true', 'null' =>
$m[2
],
'NULL' => 'null',
'self' => '\\'.
$class->name,