考虑以下代码,这是一种将回调函数存储为成员然后使用的方案:
class MyClass {
function __construct($callback) {
$this->callback = $callback;
}
function makeCall() {
return $this->callback();
}
}
function myFunc() {
return 'myFunc was here';
}
$o = new MyClass(myFunc);
echo $o->makeCall();
我希望
myFunc was here
被回显,但我得到:Call to undefined method MyClass::callback()
谁能解释这是怎么回事,以及为了获得所需的行为我该怎么办?
万一重要,我使用的是PHP 5.3.13。
最佳答案
您可以将makeCall
方法更改为此:
function makeCall() {
$func = $this->callback;
return $func();
}
关于php - 如何使用在PHP中作为类成员存储的回调函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12131349/