Re: variable type - conversion/checking
| From: | Jim Lucas | Date: | Fri, 15 Mar 2013 06:21:45 +0000 |
| Subject: | Re: variable type - conversion/checking | ||
| References: | 1 2 3 4 5 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-320556@lists.php.net to get a copy of this message | ||
On 3/14/2013 4:05 PM, Matijn Woudt wrote:
On Thu, Mar 14, 2013 at 11:44 PM, Jim Lucas <lists@cmsws.com> wrote: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) ) {On 03/14/2013 11:50 AM, Samuel Lopes Grigolato wrote: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. - MatijnSomething 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@gmail.com> wrote: On Thu, Mar 14, 2013 at 7:02 PM, georg<georg.chambert@telia.com**>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>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 georgYou could use is_numeric for that, though it also accepts floats. - Matijn
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