Instance objecten PHP

Status
Niet open voor verdere reacties.

My Name

Gebruiker
Lid geworden
8 mei 2007
Berichten
91
Ik heb een korte vraag om een vermoeden te bevestigen.

Als ik op een pagina dit noteer "$object = new object;" en de pagina herlaad, wordt er dan een nieuwe instance gemaakt en de oude overschreven of wordt de reeds eerder gemaakte instance gebruikt?
 
Het object wordt dan overschreven. Immers, als je een (php) pagina herlaad, wordt over het algemeen alles opnieuw geladen (dus ook variabelen etc).
Omdat PHP geen echte object geörienteerde programmeertaal is, heeft het geen eigen geheugenbeheer, waardoor dus de objecten niet langer bestaan, dan dat de pagina open is.
 
geen eigen geheugenbeheer, waardoor dus de objecten niet langer bestaan, dan dat de pagina open is.

Houd dit ook in dat als ik een aangemaakt object meestuur met een sessie deze (indien hergebruikt op huidige pagina naar refresh of andere pagina) ook al zijn waardes kwijt is en terug is gezet naar zijn init waardes?
 
Houd dit ook in dat als ik een aangemaakt object meestuur met een sessie deze (indien hergebruikt op huidige pagina naar refresh of andere pagina) ook al zijn waardes kwijt is en terug is gezet naar zijn init waardes?

Dat volgens mij niet, maar dat weet ik niet zeker. Zou je even moeten testen door een klasse aan te maken met een variabele en die een bepaalde waarde geven.
Daarna die variabele een andere waarde geven en dan het object in de sessie zetten. Vervolgens de sessie uitlezen en kijken wat de waarde van de variabele is.
 
Heb het direct even getest en het lijkt erop dat het gaat werken. Heb op een inlogpagina functies uit een klasse aangeroepen en vars gezet en na het uitlezen van een gemaakte sessie object op een andere pagina (dus object geplaatst in sessie) lijkt het erop dat de waardes nog steeds geset zijn. Ze zijn in ieder geval niet leeg (init)...

Thanks voor de reacties.
 
Laatst bewerkt:
Ik zie dat hij al op opgelost staat, maar even kort extra..

De normale variabelen worden inderdaad per pagina geladen.
De $_SESSION variabelen doen dat niet, MITS je op elke pagina session_start() gebruikt.

Het lijkt mij dat hiermee aan de server verteld wordt dat hij even een stukje ruimte moet reserveren, voor de huidige gebruiker.
Zodra er geen session_start() of een session_destroy() is geweest, dan zijn deze waardes weer 'kwijt'. Bij session_start() in een volgende pagina, kan je ze wel weer aanroepen. Met session_destroy() is de sessie voor die gebruker gewoon leeg.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan