我想从函数中获取所有参数(传递或未传递)。
Example:
<?php
function foo($a, $b=1)
{
return $a-$b;
}
?>
如果我打电话
$test = func_get_args(foo(10));
var_dump($test);
我只会有一个数组[0] => 10
.
即使我没有传递可选参数,我怎样才能获得它的值? (我知道func_get_args
只返回传递的参数。)
EDIT:更准确地说,这就是我正在做的事情:
function insertLog($fct_name="-1", $type="-1", $error="-1", ....)
{
// first thing
$params = func_get_args();
var_dump($params);
}
您可以使用以下方法来完成此操作ReflectionFunction https://www.php.net/ReflectionFunction函数类。
function foo($a, $b=1)
{
$arr = array();
$ref = new ReflectionFunction(__FUNCTION__);
foreach($ref->getParameters() as $parameter)
{
$name = $parameter->getName();
$arr[$name] = ${$name};
}
print_r($arr);
// ...
}
调用函数:
foo(1);
Output:
Array
(
[a] => 1
[b] => 1
)
Demo https://eval.in/101348
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)