Vraag & Antwoord

Webprogrammeren & scripting

[PHP] instanties, scope and verwijderen van classes

Anoniem
DarkScribe
2 antwoorden
  • Misschien een domme vraag, maar gelden de scope regels voor variabelen ook voor classes? En kun je een instantie ook verwijderen uit het geheugen?

    Ik maak een instantie van een class d.m.v. $variabele = new MyClass();
    Ik doe hier wat mee en dan doe ik unset ($variabele);
    Is hiermee de instantie verwijderd? Zo niet, leeft de instantie alleen in de functie waarin ik hem heb aangemaakt? Hoe zit dit in elkaar, de PHP manual is niet duidelijk hierover, wel over classes en hoe ze te maken en dergelijke, maar niet over scope en verwijderen hiervan.
  • Ja, de scope regels gelden ook voor classes.

    Een object kun je gewoon met unset() verwijderen. Let echter wel op als je dit gedaan heb:[code:1:0c26e2537f]$a =& new Object;
    $b =& $a;
    unset($b);[/code:1:0c26e2537f]
    Het object bestaat dan op zich nog steeds (je hebt alleen de referentie gekilled). Je zou dan beter dit moeten doen:[code:1:0c26e2537f]unset($b);
    $b = false;[/code:1:0c26e2537f]

    Maar normaal (maar er zijn altijd uitzonderingen) hoef je je hierover niet te druk maken. PHP begint elke request met een schone lei.

    -Rémy

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.