September 2017
Intermediate to advanced
244 pages
6h 44m
English
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:
<?php// Pre PHP 7 codeclass Point{ private $x = 1; private $y = 2;}$getXFn = function() {return $this->x;};$getX = $getXFn->bindTo(new Point, 'Point');//intermediate closureecho $getX(); // will output 1
But now with Closure::call(), the same code can be written as follows:
<?php// PHP 7+ codeclass ...
Read now
Unlock full access