Returns the parameters of a function or method.
@since Method available since Release 3.2.0
ReflectionFunction|ReflectionMethod $method:
boolean $forCall:
string
public static function getMethodParameters($method, $forCall = FALSE) {
$parameters = array();
foreach ($method
->getParameters() as $i => $parameter) {
$name = '$' . $parameter
->getName();
/* Note: PHP extensions may use empty names for reference arguments
* or "..." for methods taking a variable number of arguments.
*/
if ($name === '$' || $name === '$...') {
$name = '$arg' . $i;
}
$default = '';
$reference = '';
$typeHint = '';
if (!$forCall) {
if ($parameter
->isArray()) {
$typeHint = 'array ';
}
else {
if (version_compare(PHP_VERSION, '5.4', '>') && $parameter
->isCallable()) {
$typeHint = 'callable ';
}
else {
try {
$class = $parameter
->getClass();
} catch (ReflectionException $e) {
$class = FALSE;
}
if ($class) {
$typeHint = $class
->getName() . ' ';
}
}
}
if ($parameter
->isDefaultValueAvailable()) {
$value = $parameter
->getDefaultValue();
$default = ' = ' . var_export($value, TRUE);
}
else {
if ($parameter
->isOptional()) {
$default = ' = null';
}
}
}
if ($parameter
->isPassedByReference()) {
$reference = '&';
}
$parameters[] = $typeHint . $reference . $name . $default;
}
return join(', ', $parameters);
}