je to číslo?
13 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é.
-
jak zjistim jestli je proměnná číslo?
-
if (is_int($hodnota)) echo "$hodnota je cislo"; else echo "$hodnota neni cislo"; http://mirrors.inway.cz/manual/cs/function.is-int.php
-
áá dix. moc,,, manuál by mi nepomohl, neměl jsem ani páru co by to mohlo být.. (ani typ fce)
-
2Marcus: http://mirrors.inway.cz/manual-lookup.php?pattern=int&lang=cs
-
nieje lepsie nahodou is_numeric() ?
-
Zalezi na tom. Pokud me zajima, zda promenna obsahuje cislo, je lepsi is_numeric(). Ale kdyz chci vedet, jestli promenna je typu integer, pouziju is_int(). Napada me jediny stav, kdy je potreba hlidat typ/obsah promenne -- uzivatelsky vstup, vetsinou formular. Ten ale vzdy vraci string, takze bud rucne pretypovat, nebo pouzit is_numeric(). Jo, a vstup ze souboru. Myslim, ze v ostatnich pripadech (v php) by mel mit programator jasno v tom, jaky typ/rozsah muze promenna v tom danem okamziku mit.
-
je možný, aby is_int nepoznal číslo, když je jako string?
-
ano, je spravne, kdyz to nepozna. is_int() kontroluje, zda je promenna typu integer, a promenna typu string opravdu neni integer... Kdyz chces, aby to poznalo i cislo ve stringu, pouzij is_numeric(). Doufal jsem, ze jsem to ve svem minulem prispevku vysvetlil dostatecne.
-
Nebo ještě lze použít: ord ( string ) Ord() vrací ASCII hodnotu prvního znaku v string. Tak lze identifikovat jakoukoliv skupinu znaků (numerické číslice, znaky české abecedy, speciální znaky atd...) Musí se to ale dělat pro celý řetězec cyklem.
-
ano, a muzes to pak vyjadrit treba binarne nebo hexadecimalne a potom to pomoci chr() zase prevest na znaky. Je to velice neuzitecne a s problemem to ma pranic spolecnyho.
-
S problémem to má společného to, že pokud má proměnná hodnotu "2" lze ji snadno přetypovat a následně s ní počítat, co ale pokud má ale hodnotu "prom2".
-
PHP vyuziva automaticke typovani. Takze pokud promenna obsahuje cislo, tak pracuje jako string, tak i jako cislo. Zalezi na pouziti. Priklad: $p = "3"; $q = 5; echo $p + $q ."<br />"; // vraci 8 echo $p . $q ."<br />"; // vraci 35 echo "$p + $q <br />"; // vraci 3+5 2stip: Prave to zjistuje is_numeric(). Pokud je tam jen cislo tak je true, ale pokud se tam objevuji i znaky, tak uz je FALSE. A to se pak projevi i pri vypoctech.
-
šak jo.