[PHP] Demande de précision sur unset - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [PHP] Demande de précision sur unset (/showthread.php?tid=5530) |
[PHP] Demande de précision sur unset - Ter Rowan - 05-07-2011 coucou je me pose certainement un problème qui n'en est pas un cependant j ai un peu peur de fuite mémoire (ou du moins de consommation inutile de mémoire, le temps que le script se termine) dans un objet, j'ai un tableau de références à d'autres objets. je veux au cours d'un traitement, vider ce tableau (et supprimer tous les objets qui le composent, ceux ci n'étant référencer nul par ailleurs) Puis le remplacer par un autre. j'aimerais savoir si je m'y prend bien, ou si je dois parcourir mon tableau pour "unseter" tous les objets un par un Pour exemple, un code que je n'ai pas encore tester qui doit me permettre de construire une sorte d'arbre de décision Code : class globalScenarii extends classRoot n'hésitez pas à me dire si vous voyez une manière plus propre de manipuler l'arbre grosso modo le comportement doit être j'ai une feuille originelle O elle se transforme en 3 feuilles (car 3 scenarii) : A1 A2 A3 puis j'ai deux nouveaux scenarii pour le niveau supplémentaire, j'obtiens alors 6 feuilles : A1 + B1 A1 + B2 A2 + B1 A2 + B2 A3 + B1 A3 + B2 etc... RE: demande de précision sur unset - niahoo - 05-07-2011 heu j'ai pas tout saisi mais si tu veux vérifier que les objets sont bien détruits, utilise la fonction __destruct() dans la classe de ces objets pour faire un petit echo "ciao"; RE: demande de précision sur unset - Ter Rowan - 05-07-2011 (05-07-2011, 07:43 PM)niahoo a écrit : heu j'ai pas tout saisi mais si tu veux vérifier que les objets sont bien détruits, utilise la fonction __destruct() dans la classe de ces objets pour faire un petit echo "ciao"; c'est pas con ça ^^ j y aurais pas pensé RE: demande de précision sur unset - archANJS - 06-07-2011 Lorsque tu utilise la fonction unset($this->_scenarii);, la variable au complet est supprimée. Donc la façon que tu l'utilise est parfaite. Là où tu aurais eu des problèmes c'est, par exemple, si tu avais utilisé une fonction (au lieu d'une classe) pour supprimer ta variable... La variable dans la fonction aurait été supprimé, mais pas la variable dans ta page, donc cela aurait pu te causer des problèmes. Mais ce n'est pas le cas donc^^ Étais-ce cela ta question ? RE: demande de précision sur unset - Ter Rowan - 06-07-2011 (06-07-2011, 06:38 PM)archANJS a écrit : Etais-ce cela ta question ? le problème principal vient du fait que c'est un tableau de références et non d'entier / chaine. Référence qui plus est sur des objets que je clone... C'est là où j'ai peur que se perde des infos. Mais de ma connaissance, je suis d'accord avec toi RE: demande de précision sur unset - ToraTora - 06-07-2011 Tu peux utiliser la fonction Code : memory_get_usage(1) pour tester si tes objets sont bien détruits. Tu fais un appel à cette fonction avant et après pour comparer l'utilisation de la mémoire. Mais tu utilises correctement le unset() |