提问人:Cam Parry 提问时间:11/27/2022 更新时间:11/27/2022 访问量:84
PHP 通过构造函数向类添加方法
PHP Adding a method to a class via the constructor
问:
我将如何通过其构造函数将方法添加到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()
我尝试过在谷歌上搜索一些答案,但到目前为止我还没有太多运气,任何建议将不胜感激。
答:
1赞
Syscall
11/27/2022
#1
您正在尝试调用名为“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"
评论