PHP 7-클로저 :: call ()

Closure::call()메서드는 객체 범위를 클로저에 임시로 바인딩하고 호출하는 간단한 방법으로 추가됩니다. 에 비해 성능이 훨씬 빠릅니다.bindTo PHP 5.6.

예-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