如何使用存储在数组中的参数调用函数?

时间:2014-02-07 18:39:16

标签: php

我有一系列功能:

$functions = array(
    "sum" => function($v1, $v2) {
        $s = $v1 + $v2;
        return $s;
    }
);

现在,我对如何调用这个特定功能感到困惑 -

echo $functions["sum"](1,2); //suppose to echo 3

不起作用。

3 个答案:

答案 0 :(得分:1)

这样做

<?php

$functions = array(
    "sum" => function($v1, $v2) {
        $s = $v1 + $v2;
        return $s;
    });

echo $functions['sum'](1,2); //"prints" 3

Demo

答案 1 :(得分:1)

编辑:

  • OP刚刚加入了缺失的分号,这是一个明显的问题。

  • OP在5分钟宽限期内使用添加的分号编辑了问题,因此编辑中未显示原始缺失的分号。 (我知道我所看到的


经过测试和工作

错误是

末尾缺少的分号
echo $functions["sum"](1,2)

制作:

echo $functions["sum"](1,2);

我测试输出为3


经过全面测试和运行的代码,输出3 - 在回显的末尾添加缺少的分号。

<?php

$functions = array(
    "sum" => function($v1, $v2) {
        $s = $v1 + $v2;
        return $s;
    }
);

echo $functions["sum"](1,2); // echos 3

这个打印10

<?php

$functions = array(
    "sum" => function($v1, $v2) {
        $s = $v1 + $v2;
        return $s;
    }
);

echo $functions["sum"](1,9); // prints 10

乘法方法使用29输出18

<?php
$functions = array(
    "sum" => function($v1, $v2) {
        $s = $v1 * $v2;
        return $s;
    }
);

echo $functions["sum"](2,9); // echos 18

答案 2 :(得分:0)

在这里工作正常:

php > $funcs = array('sum' => function($v1, $v2) { return $v1 + $v2; });
php > echo $funcs['sum'](1,2);
3
php > echo $funcs['sum']('foo','bar');
0