如何通过构造函数将方法添加到PHP类中,以便在以后调用?
假设我有一个这样的PHP类:
class Action
{
public $callback = null;
public function __construct(callable $callback)
{
$this->callback = $callback;
}
}
我希望能够像这样调用这个方法:
$action = new Action(function($value) {
// do something with $value;
});
$action->callback('abc');
然而,当我这样做,我得到这个错误:
Call to undefined method Action::callback()
我试着在谷歌上搜索一些答案,但是到目前为止我还没有多少运气,任何建议都会非常感激。
您正在尝试调用函数叫"回调"。你可以用这个属性来调用它:
call_user_func($action->callback, 'abc');
或
$fn = $action->callback;
$fn('abc');
的例子:
class Action
{
public $callback = null;
public function __construct(callable $callback)
{
$this->callback = $callback;
}
}
$action = new Action(function($value) {
var_dump($value);
});
call_user_func($action->callback,12); // int(12)
$fn = $action->callback;
$fn('abc'); // string(3) "abc"