private function GenerateMethodParameter(\ReflectionParameter $MethodParameter)
{
$TypeHint = '';
if ($MethodParameter->isArray()) {
$TypeHint = 'array';
} else {
if ($MethodParameter->isCallable()) {
$TypeHint = 'callable';
} else {
if ($MethodParameter->getClass() !== null) {
$TypeHint = '\\' . $MethodParameter->getClass()->getName();
}
}
}
$Reference = $MethodParameter->isPassedByReference() ? '&' : '';
$VariableName = '$' . $MethodParameter->getName();
$DefaultValue = '';
if ($MethodParameter->isDefaultValueAvailable()) {
$DefaultValue .= '= ';
/**
* -- CANT USE DUE TO COMPATIBILITY WITH PHP 5.4 --
* if($MethodParameter->isDefaultValueConstant())
* $DefaultValue .= '\\' . $MethodParameter->getDefaultValueConstantName();
* else
*/
$DefaultValue .= var_export($MethodParameter->getDefaultValue(), true);
}
return implode(' ', array_filter([$TypeHint, $Reference, $VariableName, $DefaultValue]));
}