考虑以下类:
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();
由于字段cb
不是一个方法,因此会产生Call to undefined method
错误。如何在不使用call_user_func()
的情况下从类内部正确调用回调?
您可能希望在Closure
:上使用__invoke
public function callme() {
return $this->cb->__invoke();
}
// ⇒ Hello%
希望能有所帮助。