PHP方法回调

时间:2017-10-23 09:45:58

标签: php callback closures

如何将方法回调作为参数传递给另一个方法?我见过的所有例子都使用函数,但不使用方法。我尝试过的是:

call_user_func($this, 'method_name', [$param1, $param2,...]);

还有另一种更优雅的方式,比如将$this->method_name作为参数传递吗?

我知道我可以将回调添加为:

function () use ($param1, $param2,...) {
  return $this->method_name($param1, $param2);
}

但我想省略关闭部分。

1 个答案:

答案 0 :(得分:1)

您还可以使用[$obj, 'method']作为回调,绑定到对象。

class A { 

    public $b = 'test'; 

    public function callback() { 
        echo $this->b; 
    } 
} 

$a = new A();
$f = [$a, 'callback'];
$f();