Traditionnellement, le mécanisme de mémoire de comptage de références utilisé en PHP ne peut pas gérer les fuites de mémoire de référence circulaire. Cependant, PHP 5.3.0 utilise l'algorithme de synchronisation de l'article » Concurrent Cycle Collection in Reference Counted Systems pour traiter ce problème de fuite de mémoire.
Une explication complète de l'algorithme dépasse quelque peu le cadre de cette section, et seules les bases seront présentées. Tout d’abord, nous devons établir quelques règles de base. Si un nombre de références augmente, il continuera à être utilisé et bien sûr plus à la poubelle. Si le nombre de références est réduit à zéro, le conteneur de variables sera effacé (libre). Autrement dit, un cycle de déchets se produit uniquement lorsque le nombre de références diminue jusqu'à une valeur non nulle. Deuxièmement, pendant un cycle de déchets, découvrez quelles parties sont des déchets en vérifiant si le nombre de références est réduit de 1 et en vérifiant quels conteneurs de variables ont zéro référence.
Ce qui précède est le contenu du mécanisme de collecte des ordures 2 des caractéristiques de PHP - le cycle de recyclage. Pour plus de contenu connexe, veuillez faire attention au site Web chinois de PHP (www. php.cn) !