Autor | Zpráva | ||
---|---|---|---|
Matěj Hofman Profil |
#1 · Zasláno: 7. 3. 2015, 17:39:38
Dobrý den, potřebuji zjistit jestli uživatel zadal číslo, jestli je číslo kladné a jestli se jedná o celé číslo.
//pokud se jedná o číslo if ($cislo*1 == $cislo){ //pokud je číslo kladné if ($cislo >= 0) { //pokud se jedná o celé číslo - nemohu přijít na to, jak to vyřešit }else echo"zadejte kladné číslo"; }else echo"zadejte číslo"; Toto je moje řešení, pokud víte o lepším, prosím poraďte. Ale hlavně potřebuji vědět, jak zjistím, že se jedná o celé číslo. Díky za rady. |
||
juriad Profil |
#2 · Zasláno: 7. 3. 2015, 17:45:00
Pomůže ti intval?
Kladné číslo je z matematického pohledu striktně větší než 0. To, co jsi napsal ty, testuje nezapornost čísla. Také to násobení jedničkou je takové divné. Lepší je testovat pomocí is_numeric. |
||
Chro. Profil |
Je třeba si uvědomit, že vstup z formuláře je v PHP vždy typu string nebo array, ať se jedná o znaky a-z, 0-9, či jejich kombinace nebo znaky jiné. Celé číslo bych kontroloval následovně:
if (!is_array($_POST['vstup']) && ctype_digit($_POST['vstup'])) { //jsem kladné a celé číslo } Neprojde, příklady: -0, -13, -96.7, -032, 4.56, 3,14159265 |
||
Keeehi Profil |
#4 · Zasláno: 7. 3. 2015, 20:20:25
Kladná celá čísla bych kontroloval regulárem
if(preg_match('~^[1-9]\d*$~', $_POST['vstup'])) { //jsem kladné celé číslo } |
||
Matěj Hofman Profil |
#5 · Zasláno: 8. 3. 2015, 12:55:16
Díky za rady, už to mám :)
|
||
Časová prodleva: 9 let
|
0