PHP 7 的 Closure::call() 有着更好的性能,作用:将一个闭包函数动态绑定到一个新的对象实例并调用执行该函数。
描述:public mixed Closure::call ( object $newthis [, mixed $... ] )
暂时将闭包绑定到newthis,并用任何给定的参数调用。
php7之前的示例:<?php
class A {
private $x = 1;
}
// PHP 7 之前版本定义闭包函数代码
$getXCB = function()
{
return $this->x;
};
// 闭包函数绑定到类 A 上
$getX = $getXCB->bindTo(new A, 'A');
echo $getX();
print(PHP_EOL);
php7之后的示例:<?php
class A {
private $x = 1;
}
$getX = function() {
return $this->x;
};
echo $getX->call(new A);
?>