牛牛在线工具

Closure::bindTo()

收录 8868 个 PHP 函数,含用途说明与用法示例。

Closure::bindTo()

将闭包绑定到一个新的对象或类,并返回绑定后的闭包

函数名称:Closure::bindTo() 适用版本:PHP 5 >= 5.4.0, PHP 7 函数描述:该函数用于将闭包绑定到一个新的对象或类,并返回绑定后的闭包。 用法: Closure::bindTo(callable $closure, object|null $newthis, object|string|null $newscope = null) : Closure 参数: $closure(必选):要绑定的闭包函数。 $newthis(可选):要绑定的新对象或类的实例。 $newscope(可选):要绑定到的新类对象或类名。 返回值: 该方法返回一个新的闭包。如果绑定失败,则返回 false。 示例: class Foo { private $name = 'John'; } $name = 'Mary'; $anonymous = function() use ($name) { echo $this->name . ' ' . $name; }; $foo = new Foo(); $boundClosure = $anonymous->bindTo($foo, 'Foo'); $boundClosure(); // 输出:John Mary 在上面的例子中,我们定义了一个匿名函数 $anonymous,该函数使用了外部变量 $name 和 $this->name。 然后,我们创建了一个 Foo 类的实例 $foo。 使用 bindTo() 方法,将闭包函数 $anonymous 绑定到 $foo 对象,并指定绑定到 Foo 类的作用域。 最后,调用绑定后的闭包 $boundClosure,会输出 John Mary。这是因为 $this->name 访问了绑定后的对象 $foo 的私有属性 name,而 $name 访问了 bindTo() 绑定前的外部变量。