O'Reilly logo
  • john eischen thinks this is interesting:


Binding an object scope with a closure is an efficient way to use a closure with different objects. At the same time, it is also a simple way to use different closures having different behaviors for an object in different places. This is because it binds the object scope with a closure at runtime without inheritance, composition, and so on.
However, previously we didn't have the Closure::call() method; we had something like this:

// Pre PHP 7 code
class Point{
private $x = 1;
private $y = 2;

$getXFn = function() {return $this->x;};<...


Cover of Building RESTful Web Services with PHP 7