1

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

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

期望的输出是a, b, c.

我正在使用 PHP 5.3.3 版。

4

1 回答 1

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());
于 2013-02-14T00:16:40.967 回答