RE: [PHP] An integer?
| From: | Lars Torben Wilson | Date: | Mon, 21 Aug 2000 19:57:40 +0000 |
| Subject: | RE: [PHP] An integer? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-12801@lists.php.net to get a copy of this message | ||
Joao Prado Maia writes:
> At 08:18 PM 8/21/2000 +0100, you wrote:
>
> > > This may be a silly question, but I can't spot and easy way to do it, I
> > > want to check if the value inside a vriable is an integer. If I do
> > > is_int($variable) I always get false, because this variable qwas read in
> > > from a form so its a string, if I make the variable an integer using
> > > settype() I just end up with 0 if it was invalid, the number otherwise. I
> > > need something that will actually tell me if there the conversion was
> > > successfull. Am I missing something?
> >
> >if(!((int)$variable)) {
> > //Not an int or 0
> >} else {
> > // An int != 0
> >}
>
> He can also use gettype()
>
> if (gettype($variable) == "integer") {
> // do stuff
> } else {
> // do other stuff
> }
>
> http://www.php.net/manual/function.gettype.php
>
> Regards,
> Joao
No, neither of these examples will do what he wanted--he's trying to
find out whether a given variable (a string, since it came from a
form) represents an integer. The gettype() test above will always
evaluate to false, since form data is always passed as a string (or an
array of strings).
The 'if(!((int)$variable))' just tests whether the result of converting
the incoming string to an int is a true value or not. Among other
things, this means that it doesn't consider '0' an integer, but does
consider '45otherstuff' and integer (since the conversion of
'45otherstuff' to int results in '45'.
--
+----------------------------------------------------------------+
|Torben Wilson <torben@php.net> Netmill iTech|
|http://www.coastnet.com/~torben http://www.netmill.fi|
|Ph: 1 250 383-9735 torben@netmill.fi|
+----------------------------------------------------------------+