Closure
PHP Manual

Closure::bind

(バージョン情報なし。おそらく SVN 版にしか存在しないでしょう)

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 {
    private static 
$sfoo 1;
    private 
$ifoo 2;
}
$cl1 = static function() {
    return 
A::$sfoo;
};
$cl2 = function() {
    return 
$this->ifoo;
};

$bcl1 Closure::bind($cl1null'A');
$bcl2 Closure::bind($cl2, new A(), 'A');
echo 
$bcl1(), "\n";
echo 
$bcl2(), "\n";
?>

上の例の出力は、 たとえば以下のようになります。

1
2

参考


Closure
PHP Manual