PHP数组运行函数并将变量传递给它

时间:2015-05-10 14:19:24

标签: php arrays

我正在为一个游戏编写一个机器人,我正在编写我想调用我的数组的处理程序,以便它运行该函数。

$handlers = array(
    "x" => function()
);

function function($m)
{
    echo "Var: " . $m . "\n";
}

当我打电话给处理程序时,我尝试了这样:

$handlers("x");

那么如何将变量传递给函数。

2 个答案:

答案 0 :(得分:3)

您需要的是call_user_func功能。此外,在$handlers数组中,函数的名称必须使用引号,并且不能使用保留关键字function作为函数的名称!并且您可以使用[]运算符访问数组元素:

$handlers = array(
    "x" => '_function'
);

function _function($m)
{
    echo "Var: " . $m . "\n";
}

call_user_func($handlers['x'], "hello :)");

答案 1 :(得分:0)

为了完整起见,您也可以这样做:

$handlers = array(
    "x" => 'test'
);

function test($m) {
    echo "Var: " . $m . "\n";
}

$handlers['x']("testing...");