考虑以下课程:
class Callbackhandler() {
private $cb;
public function __construct(callable $cb) {
$this->cb = $cb;
}
public function callme() {
return $this->cb();
}
}
像往常一样调用它:
$callback = function() { return "Hello"; };
$handler = new Callbackhandler($callback);
echo $handler->callme();
产生Call to undefined method
错误,因为字段cb
不是方法。如何在不使用call_user_func()
的情况下从类内部正确调用回调?
答案 0 :(得分:2)
您可能希望在__invoke
上使用Closure
:
public function callme() {
return $this->cb->__invoke();
}
// ⇒ Hello%
希望它有所帮助。