is_int funktioniert nicht
Dazzled
- php
Hi
wozu ist is_int eigentlich gut? Ich bekomme aus einem multiplen select Feld per Formular mehrere Werte in einem Array. Jetzt möchte ich prüfen, ob alle Werte auch wirklich vom Typ Integer sind und durchlaufe alles mit einer foreach Schleife:
foreach ($thevars as $thevar) {
if (!is_int($thevar)) {
$VarsOK = false;
break;
}
}
Und was macht PHP? Meint gleich bei ersten Wert, der in dem Fall 10 war, dass es sich um keinen Integer handelt und gibt mir den Fehler aus. Tolle Funktion. Hat die einen Bug und gibts vielleicht ein Workaround?
Gruß, Dazzled
Hi!
Und was macht PHP? Meint gleich bei ersten Wert, der in dem Fall 10 war, dass es sich um keinen Integer handelt
Nun 10 kann vieles sein! Natürlich eine Integer, aber halt nicht nur, denn Formulareingaben werden IMHO als Strings übergeben. Falls Du Prüfen willst, ob es nur Zahlen sind, benutze doch einfach preg_match("/[0-9]+/", $thevar).
Lorenz
Nun 10 kann vieles sein! Natürlich eine Integer, aber halt nicht nur, denn Formulareingaben werden IMHO als Strings übergeben.
Naja, ich dachte genau für solche Fälle ist die Funktion da. Sonst kann ich ja auch nen Buchstaben als Integer deklarieren und die dumme Funktion meint, dass alles ok ist. Sowas Nutzloses... :(
»»Falls Du Prüfen willst, ob es nur Zahlen sind, benutze doch einfach preg_match("/[0-9]+/", $thevar).
Funktioniert leider nicht.
»»Falls Du Prüfen willst, ob es nur Zahlen sind, benutze doch einfach preg_match("/[0-9]+/", $thevar).
Funktioniert leider nicht.
ähhh, richtig!
preg_match("/^([0-9]+)$/", $a), sollte deine Wahl sein.
Lorenz
Danke, das klappt, das nehm ich :)
Die Funktion, die du wahrscheinlich gesucht hast heißt is_numeric().
is_int prüft den Typ is_numeric den Inhalt.
preg_match("/[0-9]+/", $thevar) sagt dir nur, ob in deinem String Zahlen vorkommen.
Die Funktion, die du wahrscheinlich gesucht hast heißt is_numeric().
is_int prüft den Typ is_numeric den Inhalt.
preg_match("/[0-9]+/", $thevar) sagt dir nur, ob in deinem String Zahlen vorkommen.
Jep, war zu schnell in meiner Antwort!
Aber is_numeric akzeptiert doch alle Zahlen. Also auch floats, etc. es dürfen aber nur ganze Zahlen sein, sonst nichts.
Nun 10 kann vieles sein! Natürlich eine Integer, aber halt nicht nur, denn Formulareingaben werden IMHO als Strings übergeben.
Naja, ich dachte genau für solche Fälle ist die Funktion da. Sonst kann ich ja auch nen Buchstaben als Integer deklarieren und die dumme Funktion meint, dass alles ok ist. Sowas Nutzloses... :(
Ja und dann noch was, ein Blick in die Referenz klärt auch so einige Fragen. Siehe mal
http://de3.php.net/manual/en/function.is-int.php
da steht des mit form-input immer String.
da steht dann auch was von
bool is_numeric()
und das ist das was Du suchst!
Lorenz