Avatar billede razmuz_dk Nybegynder
11. juli 2005 - 09:43 Der er 3 kommentarer og
1 løsning

Heltal eller ikke

Findes der en funktion i PHP, der tjekker hvorvidt en variabel indeholder et helt tal? Og det mener jeg fx "1", "2" eller "55".

is_numeric er ikke den jeg søger da den fx godtager "1.1"

is_int kan jeg heller ikke umiddelbart bruge da variablerne, der skal tjekkes er fra $_POST - og derved tekst-variabler.

if(is_int($_POST['i'])) vil fx returnere false

Jeg tænkte jeg kunne løseproblemet ved at bruge intval(), men så opstod et andet problem jeg ikke fattede noget af.

Hvordan kan det være at den skriver at følgende er ENS - når variabler åbenlyst indeholde "1z" og "1". Jeg forstår det ikke :)

$i = "1z";
$i2 = intval($i);

if($i2 != $i) {
    print "ulige";
} else {
    print "De er ens!";
}
print " '".$i."' og '".$i2."'";


... men mit oprindelige spørgsmål var altså, hvordan kan man tjekke om $_POST['var'] er et helt tal?
Avatar billede busschou Praktikant
11. juli 2005 - 09:51 #1
en dårlig løsning er måske at først tjekke med is_numeric om det er et tal og dernæst teste om "tal strengen" indeholder et "."
Avatar billede wuggawugga Nybegynder
11. juli 2005 - 09:55 #2
is_numeric($_POST['var']) && is_int($_POST['var'])

eller

is_numeric($_POST['var']) && (intval($_POST['var']) == $_POST['var'])

eller evt. noget med at dividere variablen med 1 og se om resultatet er 0.

valvar() konverterer værdien til en int, uanset(næsten) hvilken type du giver den. String -> int cast reglerne i php tillader '1z' at blive til 1, fordi 1-tallet står først fra venstre.

Håber det var svar nok :)
Avatar billede busschou Praktikant
27. juli 2005 - 15:37 #3
razmuz_dk >> kunne det bruges??
Avatar billede razmuz_dk Nybegynder
12. august 2005 - 14:20 #4
Jep.. tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester