Php 如何将函数作为参数传递给类';s局部变量
如何将函数作为param传递给类,然后将其分配给本地类的var 这是我的设想,这能解决吗Php 如何将函数作为参数传递给类';s局部变量,php,Php,如何将函数作为param传递给类,然后将其分配给本地类的var 这是我的设想,这能解决吗 需要: return $this->var($x); 我想你把这里的事情弄糊涂了。从代码中,您只需将变量的地址(包含字符串“mathm”作为其值)传递给类a的构造函数。引用被保存到实例变量$var(仍然带有字符串值)。然后在您的checkit()中,您试图将值('mathm')当作函数来使用。函数mathm()正常存在,但不在类别A的范围内。因此类a对任何名为mathm的函数的位置一无所知。这就
需要:
return $this->var($x);
我想你把这里的事情弄糊涂了。从代码中,您只需将变量的地址(包含字符串“mathm”作为其值)传递给
类a的构造函数
。引用被保存到实例变量$var
(仍然带有字符串值)。然后在您的checkit()
中,您试图将值('mathm')当作函数来使用。函数mathm()
正常存在,但不在类别A
的范围内。因此类a
对任何名为mathm
的函数的位置一无所知。这就是错误
如果插入代码行print\r($this->var)
在checkit()
中,您将看到输出是一个简单的字符串,而不是函数或函数引用
您可以使用闭包a.k.a匿名函数来传递函数。或者,您可以创建一个包含函数mathm
的类,然后传递该类的实例以在类a中使用
我希望这有帮助 应该是
$this->var
(缺少
)顺便说一句,如果你想要一个变量(&
)的引用传递给一个方法/函数(这里不需要),你应该在你的签名(\u构造(&$fun){/code>而不是在调用(新的(&$mth)
我会尝试$fun=$this->var;返回$fun($x);
因为我一点也不信任PHP解析器。编辑$this->var sorry typo!@melpomene,它工作得很好,但我想知道是否应该在类中的每个函数中使用该方法?
return $this->var($x);