Я не уверен, что вы ищете func_get_args
, который возвращает все аргументы, переданные функции, или класс ReflectionFunction
.
Базовый пример func_get_args:
function cool_function($pizza, $ice_cream) {
return func_get_args();
}
Но вам не нужны аргументы для этой работы:
function cool_function() {
return func_get_args();
}
// cool_function(1,2,3) will return array(1,2,3)
Опция отражения:
/**
* Returns an array of the names of this function
*/
function getMyArgNames($a,$b,$c)
{
$args = array();
$refFunc = new ReflectionFunction(__FUNCTION__);
foreach( $refFunc->getParameters() as $param ){
$args[] = $param->name;
}
return $args;
}
Или, для действительно сумасшедших:
/**
* Returns an associative array of the names of this function mapped
* to their values
*/
function getMyArgNames($a,$b,$c)
{
$received = func_get_args();
$i = 0;
$args = array();
$refFunc = new ReflectionFunction(__FUNCTION__);
foreach( $refFunc->getParameters() as $param ){
$args[$param->name] = $received[$i++];
}
// include all of those random, optional arguments.
while($i < count($received)) $args[] = $received[$i++];
return $args;
}