2014-09-01 69 views
3

我有一个2d数组,包括我想要执行的匿名函数。出于某种原因,我正在为如何调用该函数画一片空白。PHP - 函数内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(); 
+1

你想要的只能是5.4的工作 – Yang 2014-09-01 18:11:53

回答

1

要调用数组中的函数,使用这个:

call_user_func($someArray[0][1], $arg1, $arg2, $arg3); 

或者这样:

call_user_func_array($someArray[0][1], array($arg1, $arg2, $arg3)); 
+0

谢谢,这将适用于我正在做的事情。 – Ralph 2014-09-01 18:21:50

0

此前PHP 5.4调用这样的功能不起作用。

如果你绝对必须能够做到这一点,那么你将不得不升级到PHP 5.4或更高版本。

在旧版本的PHP中,在使用它之前,必须解除引用(将其从数组中取出)。