recently i started to learn API in PHP, i start to learning basic stuffs related to API then i decided to learn a framework and i choose slim microframework so i was reading the Dependency Container documentation and i saw this example
$app->get('/foo', function ($req, $res, $args) { $myService = $this->get('myService'); return $res;
});
here this keyword refers to Container object so i want to know how it is possible to refer an object with this keyword in PHP closure?
Advertisement
Answer
after couple of hours searching i got my answer so i want to share it
class A{ private $privateData = 2; public function get($func){ $c=Closure::bind($func,$this,"A"); $c(); } public function getPrivateData(){ return $this->privateData; } } $a=new A(); $a->get(function (){ var_dump($this->getPrivateData()); });