Quand est-il nécessaire de fermer la connexion de courbure et de libérer les ressources consommées par elle? P>
Pourquoi est-ce que je pose cette question, bien tout simplement parce que j'ai été dit, ce collectionneur de déchets PHP fait tout cela et il n'est parfois nécessaire de fermer la connexion DB ou d'appeler le Depuis, ce moment où j'ai commencé à réfléchir d'où dois-je l'appeler alors? Pour le moment, je m'intéresse à cette question depuis que j'écris une petite bibliothèque pour boucle et j'aimerais comprendre quand dois-je avoir besoin d'un utilisateur Merci à tous pour la discussion et l'explication de cela. P> __ destruct code> ressources. p>
curl_close () code> fonction. P>
3 Réponses :
aussi loin que je le comprends. Le GC ne nettoie que les ressources qui ne sont plus utilisées / référencées. Comme chaque fois que la variable CURL tombe hors de portée, elle sera nettoyée. Mais cela pourrait arriver seulement après la fin du script, ou chaque fois que la session est détruite (en fonction de la portée). p>
Mais pour être du bon côté, suivez simplement le bon sens .. fermez-le quand ce n'est plus nécessaire. p>
@Eugene - Ne fermez-vous pas votre porte d'entrée après sortir? ;)
@Christian Sciberras dépend.
@Christian Sciberras - Grande comparaison.
Si j'avais une porte qui ferme automatiquement lorsque je pars, alors non - je ne les fermerais pas manuellement.
@ROBOROBOK C'est un enfer d'une porte si elle s'auto-détruit votre maison; ou devrions-nous dire - «un peu de ménage».
résultats pour 100 fois curl_exec code> (récupération de l'URL avec cache en évitant):
Exécution dans chaque boucle: H1>
$c = curl_init();
for ($i = 0; $i < 100; ++$i) {
curl_setopt($c, CURLOPT_URL, "http://www.google.com/?rand=" . rand());
curl_exec($c);
}
curl_close($c);
dépend. Dans mon cas depuis mon initialisation de l'instance de courbure dans mon Code> Constructeur code> constructeur puis en utilisant le même affecterait les autres appels d'API. Les méthodes utilisant le même objet ne fonctionneront pas, alors je ne la ferme pas. P> p> $ curlclient code> objet pour plusieurs appels d'API , fermant l'instance p>
Soyez chargé de l'utiliser pour changer de données par CURL (Post, Met, etc.), car il peut réutiliser les anciennes données en arrière-plan, voir ma réponse: Stackoverflow.com/a/67266458/4699609