PHP 7 – Closure::call()

Closure::call() is an another new and cool feature added to PHP 7. It allows to bind a closure to a specific object on run time with the addition of closure->call() function.

It is very fast in performance than PHP 5.6 bindTo.

Let’s understand with the help of example –

Before PHP 7 –

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

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

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

   print($value());
?>

Output:
1

In PHP 7 –

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

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

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

Output:
1
Wordpress Social Share Plugin powered by Ultimatelysocial
Wordpress Social Share Plugin powered by Ultimatelysocial