有谁知道如何从this
对象获取scope
对象和\Closure
类名?
我通过反射等尝试了各种方法,但我没有成功。我找到的唯一选项是var_dump
转储此对象,但范围命名空间仍然是隐藏的。
代码中的问题:
class A {
public function makeCallback() {
return function() {};
}
}
$a = new A();
$closureWithBound = $a->makeCallback();
var_dump($closureWithBound);
输出:
object(Closure)#6 (1) {
["this"]=>
object(A)#5 (0) {
}
}
我的问题是如何从this
获取$closureWithBound
对象以及函数的静态范围(\A
此处)。
编辑:无法从对象中恢复范围,因为回调可以从静态范围声明,静态范围仍然是范围,但没有对象。