没有调用类中的php回调函数

时间:2013-01-30 14:24:19

标签: php class function callback gearman

给定这一行代码来回调函数和回调函数本身:

Class MyClass {
    public function doThings() {
        $this->gearman->client->setCompleteCallback("workerCompleted");
    }

    public function workerCompleted() {
        echo "worker is completed!";
    }
}

我得到Message: GearmanClient::setCompleteCallback(): function workerCompleted is not callable

setCompleteCallback方法需要引号中的函数名称,但如何调用类方法? $this->"workerCompleted"显然是错误的。

2 个答案:

答案 0 :(得分:5)

$this->gearman->client->setCompleteCallback("workerCompleted");

应该是

$this->gearman->client->setCompleteCallback( array( $this, "workerCompleted"));

因为您正在为成员函数指定回调,这需要一个需要调用的对象(或类名)的数组以及函数的名称。有关详情,请访问the docs

答案 1 :(得分:0)

也许你使用doBackground函数发送齿轮箱服务器的代码?这确实不使用Callback,因为根据定义,您不关心作业状态并导致应用程序代码。