This is a discussion on Checking if var is integer string or int within the PHP Language forums, part of the PHP Programming Forums category; Hi guys, The variable '$pixels' in the code below may be an integer type or an integer represented as a ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Hi guys,
The variable '$pixels' in the code below may be an integer type or an integer represented as a string type. I need to check if the value is indeed one of these. Is the following code the simplest I can get? if (!is_int($pixels) && !ctype_digit($pixels)) { // some code } Thanks, Jimmy. |
|
|||
|
On Apr 23, 2:27 pm, Jim <j...@yahoo.com> wrote:
> Hi guys, > > The variable '$pixels' in the code below may be an integer type or an > integer represented as a string type. I need to check if the value is > indeed one of these. Is the following code the simplest I can get? > > if (!is_int($pixels) && !ctype_digit($pixels)) > { > // some code > > } > > Thanks, > > Jimmy. Why not just if(!ctype_digit($pixels)) ? |
|
|||
|
> > The variable '$pixels' in the code below may be an integer type or an
> > integer represented as a string type. I need to check if the value is > > indeed one of these. Is the following code the simplest I can get? > > > if (!is_int($pixels) && !ctype_digit($pixels)) > > { > > // some code > > > } > > Why not just > > if(!ctype_digit($pixels)) > > ? Because if I pass in an integer type e.g. ctype_digit(35) it returns false as it converts 35 to the characters set equivalent (# symbol in my case) . Jimmy. |
|
|||
|
On 24.04.2007 10:00 Jim wrote:
>>> The variable '$pixels' in the code below may be an integer type or an >>> integer represented as a string type. I need to check if the value is >>> indeed one of these. Is the following code the simplest I can get? >>> if (!is_int($pixels) && !ctype_digit($pixels)) >>> { >>> // some code >>> } > >> Why not just >> >> if(!ctype_digit($pixels)) >> >> ? > > Because if I pass in an integer type e.g. ctype_digit(35) it returns > false as it converts 35 to the characters set equivalent (# symbol in > my case) . > > Jimmy. > Use typecast then if(ctype_digit((string)$var)) var is an int or if(ctype_digit("$var")) var is an int another possibility, without function calls: if((string)(int)$var === (string)$var) var is an int -- gosha bine extended php parser ~ http://code.google.com/p/pihipi blok ~ http://www.tagarga.com/blok |
|
|||
|
> Use typecast then
> > if(ctype_digit((string)$var)) > var is an int > > or > > if(ctype_digit("$var")) > var is an int > > another possibility, without function calls: > > if((string)(int)$var === (string)$var) > var is an int Can't do that as a non-numeric string will be cast to 0 and therefore won't be correctly validated. Jimmy. |
|
|||
|
On 27.04.2007 11:48 Jim wrote:
>> Use typecast then >> >> if(ctype_digit((string)$var)) >> var is an int >> >> or >> >> if(ctype_digit("$var")) >> var is an int >> >> another possibility, without function calls: >> >> if((string)(int)$var === (string)$var) >> var is an int > > Can't do that as a non-numeric string will be cast to 0 and therefore > won't be correctly validated. > Exactly, it's converted to 0 and thus causes test to fail, i.e. non-numeric string is not a number, QED. -- gosha bine extended php parser ~ http://code.google.com/p/pihipi blok ~ http://www.tagarga.com/blok |
|
|||
|
On Apr 24, 1:27 am, Jim <j...@yahoo.com> wrote:
> Hi guys, > > The variable '$pixels' in the code below may be an integer type or an > integer represented as a string type. I need to check if the value is > indeed one of these. Is the following code the simplest I can get? > > if (!is_int($pixels) && !ctype_digit($pixels)) > { > // some code > > } > How about is_numeric() ? $pixels_numeric = 25; $pixels = '25'; var_dump($pixels); var_dump($pixels_numeric); var_dump(is_numeric($pixels)); var_dump(is_numeric($pixels_numeric)); var_dump(!ctype_digit($pixels)); var_dump(!ctype_digit($pixels_numeric)); var_dump(!is_int($pixels) && !ctype_digit($pixels)); var_dump(!is_int($pixels_numeric) && !ctype_digit($pixels_numeric)); HTH |
|
|||
|
On Apr 27, 7:00 pm, Bocah Sableng <cahsabl...@gmail.com> wrote:
> On Apr 24, 1:27 am, Jim <j...@yahoo.com> wrote: > > > Hi guys, > > > The variable '$pixels' in the code below may be an integer type or an > > integer represented as a string type. I need to check if the value is > > indeed one of these. Is the following code the simplest I can get? > > > if (!is_int($pixels) && !ctype_digit($pixels)) > > { > > // some code > > > } > > How about is_numeric() ? > > $pixels_numeric = 25; > $pixels = '25'; > var_dump($pixels); > var_dump($pixels_numeric); > var_dump(is_numeric($pixels)); > var_dump(is_numeric($pixels_numeric)); > var_dump(!ctype_digit($pixels)); > var_dump(!ctype_digit($pixels_numeric)); > var_dump(!is_int($pixels) && !ctype_digit($pixels)); > var_dump(!is_int($pixels_numeric) && !ctype_digit($pixels_numeric)); > > HTH Oops.. too quick to respond. Sorry for that. :( |