Closure::bind — 复制一个闭包,绑定指定的$this对象和类作用域。
说明
public
static
Closure
Closure::bind (
Closure
$closure
,
object $newthis
[,
mixed $newscope
= 'static' ] )
这个方法是 Closure::bindTo() 的静态版本。查看它的文档获取更多信息。
参数
-
需要绑定的匿名函数。
-
需要绑定到匿名函数的对象,或者
NULL
创建未绑定的闭包。 -
想要绑定给闭包的类作用域,或者 'static' 表示不改变。如果传入一个对象,则使用这个对象的类型名。 类作用域用来决定在闭包中 $this 对象的 私有、保护方法 的可见性。 The class scope to which associate the closure is to be associated, or 'static' to keep the current one. If an object is given, the type of the object will be used instead. This determines the visibility of protected and private methods of the bound object.
closure
newthis
newscope
返回值
返回一个新的 Closure 对象 或者在失败时返回 FALSE
范例
Example #1 Closure::bind() 实例
<?php
class A {
private static $sfoo = 1;
private $ifoo = 2;
}
$cl1 = static function() {
return A::$sfoo;
};
$cl2 = function() {
return $this->ifoo;
};
$bcl1 = Closure::bind($cl1, null, 'A');
$bcl2 = Closure::bind($cl2, new A(), 'A');
echo $bcl1(), "\n";
echo $bcl2(), "\n";
?>
以上输出
1
2