是否可以在类中使用cURL回调函数?

HTM*_*ell 4 php oop curl

我在运行cURL的类中有一个函数.在我正在使用的cURL中:

curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'progress');
Run Code Online (Sandbox Code Playgroud)

progress函数在类中,并使用其属性和方法.($this->property,$this->method())

当我运行脚本时,我收到以下错误消息:

Warning: curl_exec(): Cannot call the CURLOPT_PROGRESSFUNCTION in ...
Run Code Online (Sandbox Code Playgroud)

所以问题是:我可以这样做吗?如果是这样,怎么样?

编辑: 我试图将代码更改为:

$ref =& $this;
curl_setopt($ch,
    CURLOPT_PROGRESSFUNCTION,
    function($resource, $download_size, $downloaded, $upload_size, $uploaded) use ($ref)
    {
        $ref->progress($resource, $download_size, $downloaded, $upload_size, $uploaded);
    }
);
Run Code Online (Sandbox Code Playgroud)

但我仍然得到同样的错误.

更新: @Ohgodwhy的解决方案正在运行,只需确保您的回调函数没有任何错误.

Ohg*_*why 8

相反,传入一个数组,其中引用该对象作为第一个参数,函数名称作为第二个参数.

curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, array($this, 'method'));
Run Code Online (Sandbox Code Playgroud)