Hallo!
Benutze lieber settype und versuch einfach, den Typ Deiner Variable von String auf Integer (oder Double) zu casten, wenn das erfolgreich war (== true), lag in Deinem String eine dem Typ entsprechende gültige Zahl, ansonsten eben nicht (== false).
Das halte ich für keine gute Idee. Die Funktion gibt nicht FALSE zurück wenn in der Variable andere Zeichen als Zahlen sind, sondern macht daraus ne Zahl. Hast Du mal die Kommentare zu settype() gelesen?
Zur Umwandlung von Strings in Zahlen siehe: http://de3.php.net/manual/de/language.types.string.php#language.types.string.conversion
(lässt sich zwar hier nicht zu 100% anwenden, aber es geht in die Richtung)
Ja, Du hast mit Sicherheit am Ende ne Zahl, aber Du wirst nicht merken wenn da was nicht stimmt. Wenn Du Buchstaben im String hast, dann ist die Zahl die am Ende dabei rauskommt mit Sicherheit Quatsch, weil es schon vorher irgendeinen Fehler oder einen Manipulationsversuch gegeben haben muss. Und aus diesem Grund würde ich das lieber per regExp oder is_numeric() prüfen und ggfs. auf einen Fehler direkt reagieren.
(Links setzen: </faq/#Q-19>)
Grüße
Andreas