2017-07-26 2 views
1

J'ai appris de ce SO question que la meilleure façon de détruire des objets en PHP est d'utiliser unset.PHP Destructeur | unset() VS écraser l'objet

Je me demande si je dois même de détruire l'objet si je suis essentiellement en utilisant le même var dans une boucle ...

foreach ($ids_array as $id) { 
    $O = new Object($id); 

    // stuff and things 
} 

Est-ce vraiment utiliser la même mémoire ou suis-je crée sans le savoir un groupe des objets et ne pas les détruire?

+0

Vous remplacez '$ O' à chaque fois par la boucle. – AbraCadaver

Répondre

2

S'il n'y a plus de variable faisant référence à un objet, il finira par être récupéré. Dans ce but, peu importe que vous ayez la variable (s) ou simplement leur assigner quelque chose d'autre pour qu'ils arrêtent de se référer à l'objet.

OMI vous devriez rarement utiliser unset, vous devriez plutôt écrire petites fonctions qui automatiquement défausser toutes les variables dans leur champ d'application lors de leur retour, ce qui signifie que les choses iront les déchets ramassés automatiquement plutôt tôt que tard et vous n'avez pas besoin de s'inquiéter beaucoup à ce sujet.