我有一个课,有一个test
函数在课上A
。我想$server
在$invoker's
函数体中获得参考。我使用Closure
获取的引用$this
,但是我无法获取$server
使用Closure的引用,因为$server
在定义之后 $inovker
就定义了。
谢谢。
class A {
public test() {
$self = $this;
$invoker = function () use($self){
$self.test2(); // ok, no problem, Closure is my best friend
$server.someMethod(); //Error, How to access $server here?
}
$server = new B($invoker);
}
public test2(){
echo "Thank you";
}
}
这是一个鸡蛋问题。由于PHP从上到下进行处理,因此无法正常工作。您可以做的是创建一个全局变量来保存$ server。您可以将此变量传递给调用程序,但是只有在调用类B之后,您才能使用全局变量。我不建议这样做,因为您依赖于未初始化的变量。看起来您在PHP中尝试了一些C逻辑。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句