09. oktober 2006 - 15:30Der 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.
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.
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.
Synes godt om
Ny brugerNybegynder
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.