Skip to content
Advertisement

this keyword inside slim framework closure

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());
});

https://codesamplez.com/programming/php-closure-tutorial

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement