|
|
1
9
这是一个有趣的问题。这工作:
但正如你所说,这并不是:
如果要动态调用成员的对象,请尝试:
但是不能用这种方式替换可调用方法,因为
|
|
|
2
3
函数和方法在PHP中的处理方式不同。你可以使用
|
|
|
3
1
有趣的问题,尽管我看不出为什么这会奏效:
我也有类似的问题
解决方案?从不使用
|
|
|
4
1
最接近实现这一目标的方法是
尽管要记住文档中的以下注释:
参考文献: Anonymous functions |
|
|
5
1
OP已经提出了解决方案:
也就是说,任何包含anon函数的属性都具有固有的歧义,因为在属性名后添加括号会告诉PHP您正在调用方法,而不是在属性中调用anon函数。要解决这种歧义,必须先将属性存储到局部变量中,然后调用anon函数,从而添加一定程度的分离。 您只需将类属性视为一个属性而不是“一个可作为方法调用的属性”,不管它的内容是什么,并且假设如果您在属性后面加上括号,PHP将查找一个真正的类方法。 |
|
|
6
0
在我看来,这就像一只虫子,而不是一个“怪癖”:
就在那里,我只是觉得PHP不知道如何运行它。 |
|
|
7
0
考虑一下:
您的意思是$obj->foo()闭包还是$obj->foo()方法?它是不明确的,PHP决定您指的是这个方法。要使用闭包,你必须消除你的意思。实现这一点的一种方法是像以前那样使用临时变量。另一种方法是
我不知道还有什么别的容易的方法。 |