I PHP finns det något som kallas för en variabels variabel, och manualen förklarar det så här:
Sometimes it is convenient to be able to have variable variable names. That is, a variable name which can be set and used dynamically. A normal variable is set with a statement such as:
<?php
$a = "hello";
?>A variable variable takes the value of a variable and treats that as the name of a variable. In the above example, hello, can be used as the name of a variable by using two dollar signs. i.e.
<?php
$$a = "world";
?>
Länge har jag undrat över när man skulle kunna ha nytta av det, men nu har ett sådant tillfälle dykt upp för mig (fast nu blev jag tveksam till om det verkligen är det jag vill komma åt... så här sent på natten tänker jag inte riktigt klart), men dessvärre i JavaScript.
Jag har en funktion som ser ut som följer
function startMove(objID, amount){
setFrom = parseInt(document.getElementById(objID).style.left);
(setFrom>=400)? setTo = 0 : setTo = setFrom + amount;
document.getElementById(objID).style.left = setTo+"px";
theTimer = setTimeout("startMove('"+objID+"',"+amount+")",50);
}
Det jag vill åt är att 'theTimer' inte ska heta 'theTimer', utan den ska ha samma namn som objID, för att jag enkelt ska kunna använda clearTimeout i ett senare skede. Så om jag skulle ha anropat funktionen genom att skriva
startMove('ruta1', 5);
skulle variabeln ruta1 skapats och fått ett timeout-id, som enligt funktionen ovan skulle ha givits till variabeln theTimer.
Nu har jag bestämt mig för att det är visst variabelns variabel jag vill åt, och hade jag skrivit det i PHP hade jag alltså fått skriva:
$$objID = setTimeout("startMove('"+objID+"',"+amount+")",50);
Väldigt tacksam för svar.