我可以使用函数代替变量吗?

时间:2013-02-14 00:13:24

标签: php closures anonymous-function

我很好奇PHP是否可以处理这样的代码,或者我使用了错误的语法:

$someString = implode(', ', function(){
    return array('a', 'b', 'c');
});

所需的输出为a, b, c

我正在使用PHP 5.3.3版。

1 个答案:

答案 0 :(得分:1)

implode()的第二个参数接受一个数组,所以你必须立即执行闭包:

$someString = implode(', ', call_user_func(function(){
    return array('a', 'b', 'c');
}));

这可能会更好:

$someString = implode(', ', function(){
    return array('a', 'b', 'c');
}());

但这会导致解析错误。

另一种可接受的方式:

$myGenerator = function(){
    return array('a', 'b', 'c');
};

$someString = implode(', ', $myGenerator());