在PHP中将函数作为参数传递

rou*_*out 5 php

我见过有人这样做:

usort($array, function() {
    //...
});
Run Code Online (Sandbox Code Playgroud)

如何使用自己的函数编写类似的实现?例如:

runIt(function() {
     //...
});
Run Code Online (Sandbox Code Playgroud)

和实施runIt:

function runIt() {
    // do something with passed function
}
Run Code Online (Sandbox Code Playgroud)

Ani*_*wat 10

function() {}被称为匿名函数,可以使用param名称调用.例如:

function runIt($param) {
    $param();
}
runIt(function() {
    echo "Hello world!";
});
Run Code Online (Sandbox Code Playgroud)

如果您对var-args感兴趣,那么:

function runIt() {
    foreach(func_get_args() as $param) {
        $param();
    }
}
runIt(function() {
    echo "hello world";
});
Run Code Online (Sandbox Code Playgroud)

  • 这是一个很好的答案。因此,我也很好奇,为什么它被否决了。 (2认同)