【发布时间】:2018-07-08 02:16:23
【问题描述】:
我有一个数组(类属性),它存储 PHP 方法(即“闭包”类)。就这样。
$this->methods[$name]=$action;
$action 是函数。
当我尝试调用像$this->methods[$name]() 这样的函数时,我无法访问函数内部的$this 指针。
为什么会出现这个问题,我该如何解决。
【问题讨论】:
-
你为什么希望闭包有
$this? -
我猜你的代码中需要
Closure::bind。 -
我希望函数作为类方法执行。关闭这个术语是否令人困惑?我没有返回任何回调。它将一个函数附加到一个数组,然后在稍后的时间点,在类本身内部调用同样的函数。
-
如果函数没有被定义为类方法,它就没有
$this。仅仅因为您从作为对象属性的数组执行它并不能使其成为类方法。这不是 Javascript。 -
实际上是
Closure::call。
标签: php php-closures