最近我开始学习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