【发布时间】:2011-07-24 02:21:36
【问题描述】:
我正在使用 cURL 的 CURLOPT_WRITEFUNCTION 选项来指定当数据来自 cURL 请求时要处理的回调。
$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()),这样我就可以包含与请求关联的服务器 ID ($serverid)。如何正确利用闭包,以便当 cURL 访问我的回调匿名函数时,匿名函数知道它最初是用 $serverid=5 定义的,并且可以适当地调用 readCallback()?
我最终会将它与ParalellCurl 和一个通用回调一起使用,这就是为什么需要一个匿名函数使用 ID 调用我的回调的原因。
【问题讨论】:
标签: php curl closures anonymous-function