On Fri, Mar 15, 2013 at 3:55 AM, Peter Ford <pete@xxxxxxxxxxxxx> wrote: > On 15/03/13 06:21, Jim Lucas wrote: >> >> On 3/14/2013 4:05 PM, Matijn Woudt wrote: >>> >>> On Thu, Mar 14, 2013 at 11:44 PM, Jim Lucas <lists@xxxxxxxxx> wrote: >>> >>>> On 03/14/2013 11:50 AM, Samuel Lopes Grigolato wrote: >>>> >>>>> Something like "if (is_numeric($var)&& $var == floor($var))" will do >>>>> the >>>>> >>>>> trick. I don't know if there's a better (more elegant) way. >>>>> >>>>> >>>>> On Thu, Mar 14, 2013 at 3:09 PM, Matijn Woudt<tijnema@xxxxxxxxx> wrote: >>>>> >>>>> On Thu, Mar 14, 2013 at 7:02 PM, georg<georg.chambert@xxxxxxxxx**> >>>>>> >>>>>> wrote: >>>>>> >>>>>> Hi, >>>>>>> >>>>>>> >>>>>>> I have tried to find a way to check if a character string is >>>>>>> possible to >>>>>>> test whether it is convertible to an intger ! >>>>>>> >>>>>>> any suggestion ? >>>>>>> >>>>>>> BR georg >>>>>>> >>>>>> >>>>>> >>>>>> You could use is_numeric for that, though it also accepts floats. >>>>>> >>>>>> - Matijn >>>>>> >>>>>> >>>>> >>>> for that type of test I have always used this: >>>> >>>> if ( $val == (int)$val ) { >>>> >>>> http://www.php.net/manual/en/**language.types.integer.php#** >>>> >>>> language.types.integer.casting<http://www.php.net/manual/en/language.types.integer.php#language.types.integer.casting> >>>> >>>> >>>> >>> I hope you're not serious about this... >>> >>> When comparing a string and an int, PHP will translate the string to int >>> too, and of course they will always be equal then. >>> So: >>> $a = "abc"; >>> if($a == (int)$a) echo "YES"; >>> else echo "NO"; >>> Will always return YES. >>> >>> - Matijn >>> >> >> Hmmmm... Interesting. Looking back at my code base where I thought I was >> doing that, turns out the final results were not that, but this: >> >> $value = "asdf1234"; >> >> if ( $value === (string)intval($value) ) { >> >> Looking back at the OP's request and after a little further searching, >> it seems that there might be a better possible solution for what the OP >> is requesting. >> >> <?php >> >> $values = array("asdf1234", "123.123", "123"); >> >> foreach ( $values AS $value ) { >> >> echo $value; >> >> if ( ctype_digit($value) ) { >> echo ' - is all digits'; >> } else { >> echo ' - is NOT all digits'; >> } >> echo '<br />'.PHP_EOL; >> } >> >> returns... >> >> asdf1234 - is NOT all digits >> 123.123 - is NOT all digits >> 123 - is all digits >> >> http://www.php.net/manual/en/function.ctype-digit.php >> >> An important note: >> >> This function expects a string to be useful, so for example passing in >> an integer may not return the expected result. However, also note that >> HTML forms will result in numeric strings and not integers. See also the >> types section of the manual. >> >> -- >> Jim >> > > Integers can be negative too: I suspect your test would reject a leading > '-'... For my money, `is_numeric()` does just what I want. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php