我知道Lambda
和Closures
之间的差异。我不想使用Closure
因为它获得了它的环境,而var_dump()
- 它会产生大量的输出。使用lambda与create_function()
看起来是一个好主意,但它已被弃用。然后用什么来创建在环境中无法识别的功能?
答案 0 :(得分:1)
从PHP 5.4开始,可以静态声明匿名函数。这个 阻止他们自动绑定当前类 他们。对象也可能在运行时也不会绑定到它们。
<?php
class Foo
{
function __construct()
{
$func = static function() {
var_dump($this);
};
$func();
}
};
new Foo();
?>
产量
Notice: Undefined variable: this in %s on line %d
NULL