这个关键字在slim框架闭包内



最近我开始学习PHP API,我开始学习与API相关的基本知识,然后我决定学习一个框架,我选择了苗条的微框架,所以我正在阅读依赖容器文档我看到这个例子

$app->get('/foo', function ($req, $res, $args) {
$myService = $this->get('myService');
return $res;

});

这里这个关键字是指容器对象,所以我想知道如何在PHP闭包中引用这个关键字的对象?

在这种情况下,$this似乎就是$app。从前面的文档中你可以看到你创建了容器,把它添加到应用中,所以容器在那里,注入了

$container = new SlimContainer;
$app = new SlimApp($container);

虽然Slim是一个微框架,但这并不容易。你用Slim 3,没问题。如果你想更好地理解事物是如何被组织起来的——我推荐这个教程(它是为Slim 4准备的)。

经过几个小时的搜索,我得到了我的答案,所以我想分享它

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

最新更新