提问人:dokgu 提问时间:3/18/2022 更新时间:3/18/2022 访问量:152
如何将参数传递给匿名函数
How to pass parameter to anonymous function
问:
我正在使用一个库来跟踪PHP应用程序中的错误。
我复制并粘贴了他们提供的关于如何初始化库的代码,并将其集成到我的类声明中:__construct()
function __construct($username = null) {
parent::__construct();
if(SENTRY === true) {
if(!empty($username)) {
Sentry\configureScope(function (Sentry\State\Scope $scope): void {
$scope->setUser(['username' => $username]);
});
} else if(!empty($_SESSION['username'])) {
Sentry\configureScope(function (Sentry\State\Scope $scope): void {
$scope->setUser(['username' => $_SESSION['username']]);
});
} else {
Sentry\configureScope(function (Sentry\State\Scope $scope): void {
$scope->setUser(['username' => null]);
});
}
}
}
现在我知道我总是可以将会话添加到会话中并从那里获取它,然后可能在初始化库后取消设置它,但我宁愿不走这条路。在配置库的作用域时,如何将变量传递给匿名函数?$username
答:
1赞
dokgu
3/18/2022
#1
我通过做以下操作让它工作:
Sentry\configureScope(function (Sentry\State\Scope $scope) use ($username) : void {
if(!empty($username)) {
$scope->setUser(['username' => $username]);
} else if(!empty($_SESSION['username'])) {
$scope->setUser(['username' => $_SESSION['username']]);
} else {
$scope->setUser(['username' => null]);
}
});
0赞
Milad Elyasi
3/18/2022
#2
$x = 123;
Sentry\configureScope(function (Sentry\State\Scope $scope) use($x) : void {
// you may use $x
$scope->setUser(['username' => $_SESSION['username']]);
});
评论