首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Closure::bind

(PHP 5 >= 5.4.0, PHP 7)

Closure::bind - 用特定的绑定对象和类范围复制闭包

描述

代码语言:javascript
复制
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

代码语言:javascript
复制
<?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";
?>

上面的例子会输出类似于:

代码语言:javascript
复制
1
2

另请参阅

  • Anonymous functions
  • Closure::bindTo() - 用新的绑定对象和类范围复制闭包

← Closure::__construct

Closure::bindTo →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com