PHP Closure::call()

PHP 7 新特性PHP 7 の新機能

PHP 7 の Closure::call() は、クロージャ関数を新しいオブジェクトインスタンスに動的にバインドして呼び出し実行する、より優れたパフォーマンスを備えています。

サンプル

サンプル

<?php
class A {
    private
$x = 1;
}

// PHP 7 より前のバージョンでクロージャ関数を定義するコード
$getXCB = function() {
    return
$this->x;
};

// クロージャ関数をクラス A にバインドする
$getX = $getXCB->bindTo(new A, 'A');

echo
$getX();
print(
PHP_EOL);

// PHP 7+ コード
$getX = function() {
    return
$this->x;
};
echo
$getX->call(new A);
?>

上記のプログラムを実行した出力結果は次のとおりです:

1
1

PHP 7 新特性PHP 7 の新機能

その他の拡張