PHP:从类/方法访问变量,两者都在同一个闭包中定义



以下代码按预期工作:

$b = 42;
var_dump("b: " . $b);
class A
{
function foo()
{
global $b;
var_dump("b: " . $b);
}
}
$instance = new A();
$instance->foo();

由于global关键字,foo方法能够访问$b

然而,如果我在闭包中移动所有这些,$b不再是"全局"变量,它也不起作用(无论是否使用global语句(:

call_user_func(function () {
$b = 42;
var_dump("b: " . $b);
class A
{
function foo()
{
global $b;
var_dump("b: " . $b);
}
}
$instance = new A();
$instance->foo();
});

如何编辑此代码,使方法可以访问"闭包顶级"(而不是全局(变量?

我在SO上找不到相同的问题,如果有重复的问题(与use关键字无关,与我的问题无关(,请随时关闭。

在将值存储到var$b之前,它的"全球化"对我来说很好

call_user_func(function () {
global $b;
$b = 42;
var_dump("b: " . $b);
$instance = new class
{
function foo()
{
global $b;
var_dump("b: " . $b);
}
};
$instance->foo();
});

相关内容

最新更新