我很好奇PHP是否可以处理这样的代码,或者我使用了错误的语法:
$someString = implode(', ', function(){
return array('a', 'b', 'c');
});
所需的输出为a, b, c
。
我正在使用PHP 5.3.3版。
答案 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());