FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Flitig postare
|
Håller på med en parser och har en "Finite State Machine" som jag kör med för att göra processen lite smidigare.
Det har varit en mycket hjälpsam metod men nu har jag plötsligt kört fast. Problemet består i att själva klassvariabeln som bestämmer vilket "state" man befinner sig i helt enkelt vägrar att låta sig sättas vid ett tillfälle. I början av funktionen så sätts den problematiska variabeln $this->STATE en gång och det funkar alltid. Sedan är det endast på ett ställe i en loop som jag måste uppdatera värdet vid varje iterering, och den kodsnutten som konfunderar mig: Kod: Kod:
$this->STATE=$a[$tok_key]["ds"]; echo "<br/>class:".$this->STATE."<br/>local:".$a[$tok_key]["ds"]."<br/>"; class:PLAYERNO local:PLAYERNO Men plötsligt runt den 20'e itereringen så dyker det upp följande output: class: local:PLAYERNO Alltså innehåller $a[$tok_key]["ds"] korrekt värde men av någon anledning så finns det inte i $this->STATE raden efter jag satt värdet. $this->STATE ger även negativt resultat om jag testar med en isset() Jag kan posta hela koden om det kan någon tror att den orkar titta igenom den och se om de kan hitta problemet, men det förbluffar mig att det överhuvudtaget är möjligt att variabeln kan vara tom raden efter jag satt den, och endast ungefär den 20'e gången jag kallar funktionen. Jag har inte kört med OOP speciellt mycket i just PHP tidigare och undrar vad jag kan ha missat som gör att klassvariabler plötsligt slutar existera. |
||
![]() |
![]() |
|
|