![]() |
1
9
好吧,不能使用$this的全部原因是因为闭包是后台的一个对象(闭包类)。 有两种方法可以解决这个问题。首先,是添加uuInvoke方法(如果调用$obj(),则调用此方法)。
如果您希望在修改主机对象时不更改闭包,则只需将返回函数更改为如下内容:
另一种选择是提供一个通用getter:
有关详细信息,请参阅: http://www.php.net/manual/en/language.oop5.magic.php |
![]() |
2
4
从php 5.4.0 alpha1开始,您可以访问
您也可以这样做:
正如你所看到的,很容易就弄乱了私人数据…所以要小心。 |
![]() |
3
2
好吧,你不能访问对象的私有和受保护字段是有意义的。通过明确传递
无论如何,您应该创建getter(和setter),因为 encapsulation . 另一个注意事项:您链接到的文章是在php 5.3的最终版本发布之前发布的。可能这个隐式对象传递被删除了。 |
![]() |
4
0
我在工作中使用这个create_closure()将回调分离到类中:
例子:
|
![]() |
Abhijit Sarkar · 如何修复“闭包可能比当前函数更有效” 2 年前 |
![]() |
Houman · 如果未调用闭包,如何使XCTest失败? 7 年前 |
![]() |
Kapil_A · 如何将swift中使用的闭包写入目标c? 7 年前 |
![]() |
Xendar · Jenkins管道模拟Groovy 7 年前 |
![]() |
Ibrahim Mohammed · 函数不考虑闭包 7 年前 |