作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
有没有办法将对象上下文传递给匿名函数而不将$this
作为参数传递?
class Foo {
function bar() {
$this->baz = 2;
# Fatal error: Using $this when not in object context
$echo_baz = function() { echo $this->baz; };
$echo_baz();
}
}
$f = new Foo();
$f->bar();
最佳答案
您可以将 $this
分配给某个变量,然后在定义函数时使用 use
关键字将此变量传递给函数,但我不确定它是否是更容易使用。无论如何,这是一个例子:
class Foo {
function bar() {
$this->baz = 2;
$obj = $this;
$echo_baz = function() use($obj) { echo $obj->baz; };
$echo_baz();
}
}
$f = new Foo();
$f->bar();
值得注意的是 $obj
将被视为标准对象(而不是 $this
),因此您将无法访问 private 和 protected成员。
关于php - 如何将对象上下文传递给匿名函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6330602/
我是一名优秀的程序员,十分优秀!