我在类内调用函数,函数在类外。我想将$this
类传递给该函数,
目前我正在这样做:
class foo {
func_outside_class($this);
}
function func_outside_class($context){
return $context;
}
有没有办法让我不需要将上下文作为函数参数传递。还是我上面的代码没问题?
我无法在函数内创建对象,因为此类需要一些参数。
@Barmar 写道:
传递
$this
给外部函数没有任何问题。但我不明白你为什么要立即覆盖$context
变量——如果函数不使用它,为什么要接受参数?也许你的意思是$this = $context
。如果是这样的话,我认为你做不到。不允许分配
$this
,它是一个特殊变量,始终包含类方法中的当前对象。在外部函数中,您可以简单
$context->method(...)
地使用它来代替。
如果你只是想在你的类中引用方法,你可以做这样的事情
class Foo {
public function bar() {
return 'Hello World';
}
}
function func_outside_class() {
// instantiate class
$foo = new Foo;
// call method bar() from Foo class
echo $foo->bar();
}