Closure::__construct
Closure::bindTo
Closure
PHP Manual

# Closure::bind

(PHP 5 >= 5.4.0)

Closure::bind — バインドされたオブジェクトとクラスのスコープでクロージャを複製する

### 説明

public static Closure Closure::bind ( Closure `$closure` , object `$newthis` [, mixed `$newscope` = 'static' ] )

このメソッドは、静的メソッド版の Closure::bindTo() です。 詳細な説明は Closure::bindTo() のドキュメントを参照ください。

### パラメータ

`closure`

  バインドする無名関数。

`newthis`

  指定した無名関数をバインドするオブジェクト。クロージャのバインドを解除するには `NULL` を指定します。

`newscope`

  クロージャを関連づけるクラススコープ、あるいは 'static' で現在のスコープを維持します。 オブジェクトを渡した場合は、そのオブジェクトの型をその代わりに使います。 これは、バインドしたオブジェクトの protected メソッドや private メソッドの可視性を決めます。

### 返り値

新しい Closure オブジェクトを返します。 失敗した場合に `FALSE` を返します

### 例

例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

### 参考

- 無名関数
- Closure::bindTo() - 新しくバインドしたオブジェクトとクラスのスコープで、クロージャを複製する

Closure::__construct
Closure::bindTo
Closure
PHP Manual