3
我使用cURL的CURLOPT_WRITEFUNCTION选项来指定一个回调,以便在数据从cURL请求进入时处理。cURL WRITEFUNCTION带匿名函数和闭包的回调
$serverid=5;
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.whatever.com');
curl_setopt(
$ch,
CURLOPT_WRITEFUNCTION,
function ($ch, $string) {
return readCallback($ch, $string, $serverid);
}
);
curl_exec($ch);
function readCallback($ch, $string, $serverid) {
echo "Server #", $serverid, " | ", $string;
return strlen($string);
}
我想用一个匿名函数来调用我自己的函数,实际工作中不工作(readCallback()
),这样我可以包括与请求($serverid
)相关联的服务器ID。我该如何正确使用闭包,以便当cURL达到我的回叫匿名函数时,匿名函数知道它最初是用$serverid=5
定义的,并且可以适当地调用readCallback()
?
我最终会使用ParalellCur l和一个常见的回调,这就是为什么有必要有一个匿名函数用ID调用我的回调函数。
非常好,谢谢!现在,'使用'将该变量锁定到匿名函数定义时的值吗?例如,我最终会计划在一个循环中调用它,'$ serverid'的值会改变每次迭代。如果不是,我该如何创建这样一个绑定? – Brad 2011-03-27 22:37:56
看更新后的答案 – 2011-03-27 22:48:28
感谢Imi的澄清。价值实际上是我所需要的,但我可以想到时间参考也会有用。非常好,再次感谢! – Brad 2011-03-27 22:56:12