怎么根据函数体和变量组装出来 Closure

2014-06-16 08:01:39 +08:00
 yakczh
比如
$f=function($test){

echo $test;

};
$p="ldjfosjfsofj";

有个函数 function call($func,$para){
一般可以这样调用 $func($para);
但这里能不能根据函数体和参数 组装出一个Closure呢?
}
2679 次点击
所在节点    PHP
1 条回复
foccy
2014-06-16 10:09:34 +08:00
function make()
{
$params = func_get_args();
$func = array_shift($params);
return function() use ($func, $params) {
return call_user_func_array($func, $params);
};
}

$foo = 'Foo';

$bar = 'Bar';

$sayHi = function($to, $from) {
echo 'Hi, ' . $to . '. I\'m ' . $from . '.';
};

$closure = make($sayHi, $foo, $bar);

$closure(); // output: 'Hi, Foo, I'm Bar.'

不知道是不是这个意思

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/117702

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX