PHP-二维数组中的函数


PHP - Function Inside 2d Array

我有一个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中,在使用闭包之前,您必须取消引用闭包(将其从数组中取出)。