Autor | Zpráva | ||
---|---|---|---|
Mesiah Profil |
#1 · Zasláno: 28. 7. 2009, 19:38:59
zdravicko, mam fci na testovani, zda je zadana hodnota cislo, ale nefunguje u nuly.
function JenCisla($vstup) { if ( is_numeric(trim($vstup)) || $vstup == "0" ) { return $vstup; } else { return false; } } k testovani pouzivam script: if ( JenCisla(0) ) echo "0 - projde<br>"; else echo "0 - NEprojde<br>"; if ( JenCisla("0") ) echo "napsaná 0 - projde<br>"; else echo "napsaná 0 - NEprojde<br>"; if ( JenCisla('0') ) echo "napsaná 0 - projde<br>"; else echo "napsaná 0 - NEprojde<br>"; $cislo = 0; if ( JenCisla($cislo) ) echo "promenna 0 - projde<br>"; else echo "promenna 0 - NEprojde<br>"; ale vraci jen: 0 - NEprojde napsaná 0 - NEprojde napsaná 0 - NEprojde promenna 0 - NEprojde nejake napady? :( |
||
SwimX Profil |
#2 · Zasláno: 28. 7. 2009, 19:53:18
Mesiah:
a nějaký důvod proč neudělat: if ( is_numeric(0) ) echo "0 - projde<br>"; else echo "0 - NEprojde<br>"; jinak „k testovani pouzivam script:“ je nesmyslné, to první uplně stačí |
||
Joker Profil |
#3 · Zasláno: 28. 7. 2009, 19:55:43
Mesiah:
Hehe, pěkná nachytávka :) Nula tou funkcí projde správně, ale co v tom případě udělá ta funkce? Vrátí vstup, tj. nulu. Ta je pak použitá v if jako bool, takže se automaticky konvertuje na false. Co takhle? if ( JenCisla(0) === false) echo "0 - projde<br>"; else echo "0 - NEprojde<br>"; |
||
Mesiah Profil |
#4 · Zasláno: 28. 7. 2009, 23:35:31
SwimX
bo puvodne jsem mel tu fci na testovani napsanou jinak, ale byla to blbost, tak jsem to predelal a byl jsem tak liny to vsude prepisovat, ze jsem se rozhodl nechat to tak a jen prepsat puvodni fci JenCisla; mno ale ted na to dojizdim :)) Joker hh, jn dobre jsem si na*ral do gatí :-D |
||
Majkl578 Profil |
#5 · Zasláno: 29. 7. 2009, 05:03:20 · Upravil/a: Majkl578
a nejaky duvod proc neudelat:
function numbersOnly($input) { return preg_match('~^[0-9]+$~', $input) ? (int) $input : null; } ? mmj, pres is_numeric projde i float, coz si myslim, ze tady neni zadouci (pokud se pletu, staci nahradit ~^[0-9]+$~ za ~^[0-9]+(?:\.[0-9]+)?$~ |
||
Časová prodleva: 15 let
|
0