Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

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.