PHP:在另一个函数的参数中调用一个函数

时间:2016-01-13 17:17:52

标签: php function

在php的另一个函数中调用函数的语法是什么? 我想要这样的东西:

function argfunction($a,$b,$c){
}
function anotherfunction(argfunction($a,$b,$c), $d, $e)
{
}

我没有在argfunction

的定义中再次致电anotherfunction

2 个答案:

答案 0 :(得分:1)

没有意义,但我会假设你以错误的方式表达你的想法。

你可能会寻找类似回调的东西吗? 请查看以下内容:herehere

答案 1 :(得分:1)

函数的参数应该是声明性的,即它们不应该做某事。

但您可以使用callable关键字(PHP 5.4)执行此操作:

function argfunction($a,$b,$c){
    return $a+$b+$c;
}

function anotherfunction(callable $a_func, $a, $b, $c, $d, $e) {
    // call the function we are given:
    $abc = $a_func($a, $b, $c);
    return $abc + $d * $e;
}

// call:
anotherfunction ("argfunction", 1, 2, 3, 4, 5); // output: 26

或者你可以传递整个函数定义:

echo anotherfunction (function ($a, $b, $c) {
        return $a+$b+$c; 
    }, 1, 2, 3, 4, 5);  // output: 26

或者,将函数赋值给变量,然后传递:

$myfunc = function ($a, $b, $c) {
    return $a+$b+$c; 
};
echo anotherfunction ($myfunc, 1, 2, 3, 4, 5);  // output: 26

但是如果你只想将函数调用的结果传递给另一个函数,那么它就更简单了:

function anotherfunction2($abc, $d, $e) {
    return $abc + $d * $e;
}

echo anotherfunction2 (argfunction(1, 2, 3), 4, 5); // output: 26