PHP可以将一个闭包函数绑定到一个类上面。
然后这个闭包函数就拥有了php类的成员函数的权限。
这样就可以通过闭包函数直接访问到类的私有成员了。
实例代码:
[复制到剪贴板] |
class MyCls {private $v = 1;}
//定义一个闭包函数
//因为后续会绑定到类,所以在函数中我们可以像类的成员函数一些访问到类中的变量。
//例如魔法变量$this
$getPrivateV = function() {return $this->v;};
//类的实例
$myCls = new MyCls();
//绑定方法有两种:
// PHP 7 之前版本的绑定方式
$getV = $getPrivateV->bindTo($myCls, 'MyCls'); // 中间层闭包
echo $getV();
// PHP 7+ 及更高版本的代码
echo $getPrivateV->call($myCls);
如果是使用了php7+,我们会发现访问是这么的方便。