我有一个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();
答案 0 :(得分:1)
要调用数组中的函数,请使用:
call_user_func($someArray[0][1], $arg1, $arg2, $arg3);
或者这个:
call_user_func_array($someArray[0][1], array($arg1, $arg2, $arg3));
答案 1 :(得分:0)
在PHP 5.4之前调用这样的函数不起作用。
如果您必须能够执行此操作,则必须升级到PHP 5.4或更高版本。
在旧版本的PHP中,您必须在使用之前取消引用闭包(将其从数组中取出)。