在线文档教程
PHP
类和函数 | Classes and Functions

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.0newscope不能作为一个内部类的对象,在这个版本之前有可能是什么。

示例

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 →