retezec ve switche

mam tento switch:
switch($pocitani[vysledek]){
.
.
.
case 2:
switch($pocitani[tip]){
case (1):
case (10):
case (0):
$body = $body - 2;
break;
case (02):
$body = $body + 2;
break;
case (2):
$body = $body + 5;
break;
}
break;

a spatne mi to tu pocita:-/, kdyz zadam 02 tak to napise 2body,to je oki,ale kdyz dam tip 2,tak to stejne skonci na 02,a to jsem obe promeny hodil do stringu(settype($pocitani[vysledek], "string");settype($pocitani[tip], "string");) Co s tim?
zkousel sem ruzne kombinovat " ' a bez uvozovek ale porad nic:-(
<HTML>0,2 je typ double ne string</HTML>
to neni 0,2 ale "02"!
02 je totéž co 2
'02' není totéž, co '2'

parser projíždí tvůj skript, vidí 02 v case... udělá z něj 2 a ten další case jej nezajímá, protože ten vlastně nenastane.
pokud chceš nulu zohledňovat, musíš ji do těch casu ouvozvkovat, tedy

case '02':
>>Nipal

$pocitani[vysledek]='2';
$pocitani[tip]='2';

case ('2'):
switch($pocitani[tip]){
case ('1'):
case ('10'):
case ('0'):
$body = $body - "2";
break;
case ('02'):
$body = $body + "2";
break;
case ('2'):
$body = $body + "5";
break;
}
break;

tak, tohle to vypise stejne 2!
A jakou hodnotu má $body před tím switchem? (předpokládám že $body vypíše 2...)
jo vypise 2,
pred pruchodem switch($pocitani[vysledek]){ se nastavuje 0 -> $body = 0;
Nechapu cisla v uvozovkach. Bud myslis cisla a s tema pocitej. Retezce se nescitaji, ale skladaji.
>>sojkovec: asi takhle, uzivatel musi zadat tip 1 01 0 02 2, a vysledek muze byt 1 0 2, takze kdyz uzivatel da tip 02 a vysledek je 2,tak se mu pripoctou 2 body,pokud je vysledek 2 a uzivateluv tip je 2,pripocte se mu 5bodu,chapes?
Ne.
Tak ty čísla předávej jinak, třeba '0,2'
jeziis, to uplne normalni sazeni! zajde te si do sazkove kancelare a tam to snad pochopite!

kdyz je vysledek zapasu 2 a uzivateluv tip je 02,tak se ma provist tenhle radek:
case ('02'):
$body = $body + "2";
break;


kdyz je vysledek zapasu 2 a uzivateluv tip je 2,tak se provede tohle:
case ('2'):
$body = $body + "5";
break;

to me taky napadlo predavat cislo 02 jako 0,2, ale nerikejte mi ze v PHP se to neda nejak vyresit stringem?
zadani je jasny
kdyz budes OD ZACATKU pracovat s retezcem na misto cisla tak neni problem. Kdyz je totiz 02 integer tak imho vzdy se upravi na 2 a potom te uz ani prevod na string nezachrani.
asi tak. a nechapu, proc porad pricitas retezec. retezce se nescitaji, ale spojuji teckou
>>Tonik kde pricitam retezce? timhle? $body = $body + "5";
body i 5 jsou normalne integer

>>Hihik <option value=\"02\">02</option> ?takhle? ty tipy zadavam s selectu
sisa: pozor, 5 je integer, ale "5" je string (teda doufam, ze ze sebe nedelam blbce, uz je vecer a nejak mi to nemysli)
jj, k body pripojis 5 teda ak body je 1 tak dostanes "15" (aj toto bude string) a nie 6
hmm..zajimavy,ale tohle mi funguje,ze to pricita,odecita 2, 5!
Takze uz na zacatku zpracovavajiciho skriptu v promenne $_POST["tip"] mas 2? To je divny...

Vyres to treba tak ze misto 02 budes pracovat s 20 nebo jinou hodnotou. Takze $tip bude obsahovat 1, 0, 2, 10 nebo 20. Pritom v selectu samozrejme zustanou 1, 0, 2, 10, 02. Ten problem s konverzi pak odpada.
alebo:
<option value=\"tip02\">02</option>
<option value=\"tip003\">003</option>
...

a potom napr cez
$tip=explode("tip",$tip);
$pocitani[tip]=$tip[1];
získaš všetko za reťazcom "tip" ($tip[1]=""; by malo platiť)