Php7-closure-call

提供:Dev Guides
移動先:案内検索

PHP 7-Closure :: call()

  • Closure :: call()メソッドは、オブジェクトスコープを一時的にクロージャーにバインドして呼び出す簡易的な方法として追加されます。 PHP 5.6の *bindTo と比較して、パフォーマンスがはるかに高速です。

例-PHP 7以前

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

  //Define a closure Pre PHP 7 code
   $getValue = function() {
      return $this->x;
   };

  //Bind a clousure
   $value = $getValue->bindTo(new A, 'A');

   print($value());
?>

次のブラウザ出力を生成します-

1

例-PHP 7以降

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

  //PHP 7+ code, Define
   $value = function() {
      return $this->x;
   };

   print($value->call(new A));
?>

次のブラウザ出力を生成します-

1