我有一个php函数function foo($bar1, $bar2, $bar3)
是否有可能动态获取参数名称和值?
我找到func_get_args
(http://php.net/manual/de/function.func-get-args.php),但会返回类似
0 => "valueOf$bar1", 1=> "valueOf$bar2", 2 => "valueOf$bar3"
我想要的是:
"$bar1" => "valueOf$bar1", "$bar2"=> "valueOf$bar2", "$bar3" => "valueOf$bar3"
这可能吗?
答案 0 :(得分:4)
您可以使用get_defined_vars
。 example
答案 1 :(得分:2)
可以实现,但需要付出很多努力。您需要通过reflection获取参数名称,并将名称映射到通过func_get_args
检索到的值。
如果真的需要这个,你可以采取另一种更简单的路线,并定义你的功能需要一个parameter object:
class MyParamObj {
public $foo;
public $bar;
}
function myfunc(MyParamObj $args) {
# ...
}