Avatar billede tatsudoshi Nybegynder
09. oktober 2006 - 15:30 Der er 4 kommentarer og
1 løsning

PHP klasse glemmer klassevariabler

Jeg har en klasse, hvor jeg sætter nogle klassevariabler via __construct().

Så har jeg nogle andre, også klassevariabler, som jeg sætter fra controlleren via en klassefunktion.

Og til sidst er der tre klassevariabler som bliver sat fra en funktion i klassen selv. Det er disse tre, den ikke vil huske. Indholdet udskrives fint, men næste gang jeg kalder objketet frem, er disse tre variabler væk, altså i NULL.

Da indholdet af disse variabler er afhængige af at klassen selv regner det ud, kan jeg ikke se hvordan jeg kan sætte disse på anden måde.

Jeg har prøvet at:
bruge $this-> direkte i funktionen,
sætte nogle lokale variabler med funktion scope, som så bliver gemt via $this-> = lokal,
igen bruge lokale variabler og sætte dem i klassen via set funktioner.

Intet af det virker. Lige så snart webserveren har sendt  datastrømmen afsted, glemmes præsis disse tre. Alle andre variabler i klassen husker den fint.

Jeg er totalt på bar bund her, da det ikke burde kunne lade sig gøre. Al hjælp er påskønnet.
Avatar billede tatsudoshi Nybegynder
09. oktober 2006 - 15:33 #1
Jeg kan godt dele klassen, så I kan se den, men er der ikke noget med at de helst vil have vi ikke C/P'er kode?
Avatar billede mysli Nybegynder
10. oktober 2006 - 00:17 #2
Så vidt jeg ved har dette aldrig været et problem.

Hvordan gemmer du instansen, som en session?
Avatar billede tatsudoshi Nybegynder
10. oktober 2006 - 08:04 #3
Ja.. jeg mener heller ikke mine andre klasser har noget problem med at selv sætte sine variabler..
Avatar billede tatsudoshi Nybegynder
10. oktober 2006 - 09:01 #4
Jeg har fundet en løsning, selvom jeg stadig ikke fatter at det skal gøres sådan her:

Jeg har lavet en privat funktion, som jeg kalder fra __construct, når objektet bliver instansieret, som sætter klassevariablerne. Kan være det har noget at gøre med at jeg gemmer instanserne i SESSION.. aner det ikke.
Avatar billede mysli Nybegynder
10. oktober 2006 - 09:14 #5
Det virker underligt, men hvis det går nu er det vel fint nok. Det kunne nok alligevel være rart at kende til fejlen. Her kan jeg desværre ikke hjælpe, da jeg selv gemmer i sessions og det ikke giver problemer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester