尽管代码示例来自 Laravel,但这不是 Laravel 问题!
所以我有这部分代码
class MacroServiceProvider extends ServiceProvider
{
public function boot()
{
Collection::macro('method_name', function () {
return $this->map(function ($item) {
//...do something;
});
});
}
}
问题是$this不属于,MacroServiceProvider但Collection我的 IDE 和 phpstan 显示我的错误,当然。
编辑:问题不清楚。IDE 认为这$this只是MacroServiceProvider在Collection. 所以当它被执行时$this将是Collection. 我想要实现的是指示代码验证器 $this 内部回调是Collection实例。
是否可以注释$this并告诉它属于Collection实例?
PS PHP 版本是 7.3 IDE 是 PHPStorm 但我认为没关系。
PPS 代码工作得很好。这只是关于 phpstan 验证。