Neu*_*onQ 3 php closures functional-programming
是否有任何方法可以在PHP中为5.3以上的语言版本编写真正的闭包(5.3 use为匿名函数添加了关键字)?
我PHP 5.3+我可以写:
function make_adder($x) {
return function($to) use ($x) {
return $to + $x;
};
}
$add5 = make_adder(5);
$add5(100); # => 105
Run Code Online (Sandbox Code Playgroud)
如何在函数内部使用这种定义函数的模式,内部函数可以访问外部函数变量?
以下内容适用于这种简单的情况:
function make_adder($x) {
return create_function('$to', 'return '.var_export($x, true).' + $to;');
}
$add5 = make_adder(5);
$add5(100); # => 105
Run Code Online (Sandbox Code Playgroud)
但这并不是严格意义上的封闭.