【问题标题】:PHP Adding a method to a class via the constructorPHP通过构造函数向类添加方法
【发布时间】:2022-11-27 02:16:02
【问题描述】:

我将如何通过其构造函数向 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()

我已经尝试使用谷歌搜索一些答案,但到目前为止我运气不佳,任何建议将不胜感激。

【问题讨论】:

标签: php class oop callback


【解决方案1】:

您正在尝试调用功能名为“回调”。您可以获取属性来调用它:

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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-16
    • 2013-05-28
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多