I guess that works but every possible solution posted in this thread is
a lot of lines of code to perform a simple validation.

PHP should offer/modify the appropriate API to do this.  I remember that
is_numeric() didn't exist before.

Something like:
is_float_string(mixed value)

or modify is_numeric() to explictly perform an integer validation:
is_numeric(mixed value [, bool is_integer = false])

is_numeric("5.5", true)  ==> false, "5.5" is not an integer string
is_numeric("10", true)   ==> true

May be filing a bug report will do the trick.  ;-)


-William


El mi? 07-04-2004 a las 10:25, Red Wingate escribió:
> An RegExp will work but is not as fast as native functions, but you
> could use something like:
> 
> $len1 = strlen ( $input );
> $len2 = strspn ( $input , "1234567890,." );
> 
> if ( $len1 == $len2 ) {
>    echo 'yuuhooo';
> } else {
>     echo 'd\'oh';
> }
> 
> [...]
> > > From: "William Lovaton" <[EMAIL PROTECTED]>
> > >
> > > > Instead of doing a lot of casting, you can use is_numeric() to see if a
> > > > variable is a number or a numeric string.
> > >
> > > Yeah, but the OP wanted to be able to tell an integer from a real number
> > > from a string. is_numeric() is going to validate 5, 5.5, and 5.05E6, for
> > > example.
> >
> > well, an integer is a float too, the real problem is when you type 5.5
> > in a variable that is expected to be integer.  In this case is_numeric()
> > won't do the trick.
> >
> > May be using regexps ([0-9]) will be enough to check integer values but
> > I think it is a bit slower.  It is always better to use native functions
> > instead of regexps where possible.
> [...]

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to