2014-09-01 81 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中,在使用它之前,必須解除引用(將其從數組中取出)。