我在运行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的解决方案正在运行,只需确保您的回调函数没有任何错误.
相反,传入一个数组,其中引用该对象作为第一个参数,函数名称作为第二个参数.
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, array($this, 'method'));
Run Code Online (Sandbox Code Playgroud)