PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

Closure::bind - バインドされたオブジェクトとクラスのスコープでクロージャを複製する | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

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::bindTo() のドキュメントを参照ください。

パラメータ

closure

バインドする無名関数。

newthis

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

newscope

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

返り値

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

変更履歴

バージョン 説明
7.0.0 newscope に内部クラスのオブジェクトを渡すことができなくなりました。 以前のバージョンでは、渡すことができていました。

例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::bind - バインドされたオブジェクトとクラスのスコープでクロージャを複製する」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | Closure::bind - バインドされたオブジェクトとクラスのスコープでクロージャを複製する」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: