PHP - 2d数组内的功能

时间:2014-09-01 18:09:02

标签: 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();

2 个答案:

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