我似乎记得在PHP中,有一种方法可以将数组作为函数的参数列表传递,将数组取消引用为标准的func($arg1, $arg2)
方式。但现在我不知道该怎么做了。我回想起通过引用传递的方式,如何“全局”传入参数……而不是如何将数组移除到参数列表中。
它可能和func(&$myArgs)
一样简单,但我非常确定那不是它。但是,遗憾的是,php.net手册到目前为止还没有透露任何东西。并不是说我在过去一年左右的时间里不得不使用这个特殊的功能。
发布于 2009-04-13 15:02:05
http://www.php.net/manual/en/function.call-user-func-array.php
call_user_func_array('func',$myArgs);
发布于 2009-04-13 19:42:10
另请注意,如果要将实例方法应用于数组,则需要将函数传递为:
call_user_func_array(array($instance, "MethodName"), $myArgs);
发布于 2014-02-18 22:28:53
为了完整起见,从PHP 5.1开始,这也可以工作:
<?php
function title($title, $name) {
return sprintf("%s. %s\r\n", $title, $name);
}
$function = new ReflectionFunction('title');
$myArray = array('Dr', 'Phil');
echo $function->invokeArgs($myArray); // prints "Dr. Phil"
?>
请参阅:http://php.net/reflectionfunction.invokeargs
对于方法,您使用ReflectionMethod::invokeArgs,并将对象作为第一个参数传递。
https://stackoverflow.com/questions/744145
复制相似问题