PHP通过构造函数给类添加一个方法



如何通过构造函数将方法添加到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"

相关内容

  • 没有找到相关文章

最新更新