是php中的一种方式来创建一个函数,该函数使用提供的参数(提供的函数 - 作为数组)执行提供的函数(作为参数)。
以下是一些代码:
class Worker
{
public function execute($func, $paramsArr)
{
php_func_executer($func, $paramsArr); //the function that I would like to have
}
}
在其他php文件中我会做如下:
Class SomeClass
{
public function test($varA, $varB)
{
//do something
}
public function exeText()
{
...
$worker = new Worker();
$worker->execute(test, [$varA, $varB]);
}
}
我知道call_user_func_array
但是在这里我不想传递函数的名称(作为字符串),我想传递函数本身(如上面的代码所示)
谢谢!
答案 0 :(得分:1)
call_user_func_array将完成这项工作
$func = function($a, $b) {
return $a+$b;
};
echo call_user_func_array($func, [1, 2]); // 3
答案 1 :(得分:1)
您可以将函数名称作为字符串传递并调用它。
function execute($func, $paramsArr)
{
$func($paramsArr[0], $paramsArr[1]);
}
function func($par1, $par2)
{
echo $par1." ".$par2;
}
execute('func' , array('a','b'));