![]() |
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决定您指的是这个方法。要使用闭包,你必须消除你的意思。实现这一点的一种方法是像以前那样使用临时变量。另一种方法是
我不知道还有什么别的容易的方法。 |
|
simply lemon · python上链表的添加方法 1 年前 |
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
![]() |
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
![]() |
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
![]() |
Andy Votava · 从父类定义调用学生方法 1 年前 |