PHP 7 - Đóng cửa :: call ()

Closure::call()phương thức được thêm vào như một cách viết tắt để tạm thời ràng buộc phạm vi đối tượng với một bao đóng và gọi nó. Nó nhanh hơn nhiều về hiệu suất so vớibindTo của PHP 5.6.

Ví dụ - Pre 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());
?>

Nó tạo ra đầu ra trình duyệt sau:

1

Ví dụ - PHP 7+

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

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

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

Nó tạo ra đầu ra trình duyệt sau:

1