retezec ve switche
20 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
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ť)