Closure::bind
Closure::bind
(PHP 5 >= 5.4.0, PHP 7)
Closure::bind - 用特定的绑定对象和类范围复制闭包
描述
public static Closure Closure::bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] )
此方法是Closure::bindTo()的静态版本。有关更多信息,请参阅该方法的文档。
参数
closure
匿名函数绑定。
newthis
给定的匿名函数应该绑定到的对象,或者NULL
闭包被解除绑定的对象。
newscope
与闭包相关联的类作用域,或'static'来保留当前的作用域。如果给出一个对象,则将使用该对象的类型。这决定了绑定对象的受保护方法和私有方法的可见性。不允许将内部类的(对象)作为此参数传递。
返回值
返回一个新的Closure对象或FALSE
失败
Changelog
版本 | 描述 |
---|---|
7.0.0 | newscope不能作为一个内部类的对象,在这个版本之前有可能是什么。 |
示例
Example #1 Closure::bind() example
<?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
另请参阅
- Anonymous functions
- Closure::bindTo() - 用新的绑定对象和类范围复制闭包
← Closure::__construct
Closure::bindTo →