我有一个2d数组,其中包含一个我想要执行的匿名函数。出于某种原因,我对如何调用该函数一无所知。
以下带有抛出错误:
$someArray[] = ['somevalue', function () {echo "test function";}];
$someArray[0][1]();
错误:
Notice: Undefined variable
Fatal error: Function name must be a string
如果我做以下操作,它将工作
$someFunc = $someArray[0][1];
$someFunc();
要调用数组中的函数,请使用以下命令:
call_user_func($someArray[0][1], $arg1, $arg2, $arg3);
或者这个:
call_user_func_array($someArray[0][1], array($arg1, $arg2, $arg3));
在PHP 5.4之前,调用这样的函数是不起作用的。
如果你必须能够做到这一点,那么你必须升级到PHP 5.4或更高版本。
在旧版本的PHP中,在使用闭包之前,您必须取消引用闭包(将其从数组中取出)。