Re: variable type - conversion/checking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 '-'...


--
Peter Ford, Developer                 phone: 01580 893333 fax: 01580 893399
Justcroft International Ltd.                              www.justcroft.com
Justcroft House, High Street, Staplehurst, Kent   TN12 0AH   United Kingdom
Registered in England and Wales: 2297906
Registered office: Stag Gates House, 63/64 The Avenue, Southampton SO17 1XS

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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux