是否有必要关闭cURL连接?

kou*_*ton 6 php curl

我在PHP中为cURL创建了一个包装函数.它的简化版本如下所示:

function curl_get_contents($url, $try = 1) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, '1');
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, '1'); 

    // Execute the curl session
    $output = curl_exec($ch);

    if ($output === FALSE) {
        if ($try == 1) { //Try again
            return $this->curl_get_contents($url, 2);
        } else {
            return false;
        }    
    }        
}
Run Code Online (Sandbox Code Playgroud)

如您所见,如果失败,我会强制重试该函数.我需要跑curl_close()吗?PHP是否关闭脚本末尾的所有句柄?

UPDATE

链接的问题在答案中非常含糊,并且不支持数据.我真的很感激基于一个分析器的答案,该分析器显示PHP立即关闭连接.

h2o*_*ooo 8

不,你不这样做 - 垃圾处理器会为你照顾它,你不需要打扰自己清理内存.

准确的答案在手册条目" 资源 "中描述:

释放资源

由于PHP 4的Zend引擎引入了引用计数系统,因此不会自动检测到没有更多引用的资源,并且它被垃圾收集器释放.因此,很少需要手动释放内存.

注意:持久性数据库链接是此规则的一个例外.它们不会被垃圾收集器破坏.有关更多信息,请参阅持久连接部分.