Re: PHP Integer Bug

From: Date: Sat, 19 Nov 2011 13:53:27 +0000
Subject: Re: PHP Integer Bug
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-56430@lists.php.net to get a copy of this message
If I'm not mistaken, that is to be expected. That's because you're on a 32 bit system, so the maximum possible int (PHP_INT_MAX) is 2147483647. Now, normally PHP could cast to a float to get the larger number in, but you explicitly cast it to an integer, so it had to truncate the value. Try var_dump($s + 0); which correctly results in a float of the correct value. But the problem is that you asked for the int type, which overflowed... Anthony PS: You can use http://codepad.viper-7.com/ to test 5.2, 5.3, 5.4 and Trunk (I believe they do nightly builds of each)... On Sat, Nov 19, 2011 at 8:46 AM, Paul Dragoonis <dragoonis@gmail.com> wrote: > Hey guys, > > I don't have a dev environment on my mac here so I can't upgrade to > TRUNK to test so I'm relying on someone on the internals list to test > this. > > ---- PHP INFO ---- > 5.3.1 > > ------ ISSUE ---- > Simple integer work, converting it from being wrapped in a zval.type of string, > into int. Same value would be expected but it's giving an arbitrary value. > > I can't test on latest php 5.3.x as I don't have a dev environment > setup on this > machine. So i'm relying on some mac user to test using trunk and verify. > > ----- OS ---- > MAC OSX 10.7.2 > Darwin Paul-Dragooniss-MacBook-Pro.local 11.2.0 Darwin Kernel Version > 11.2.0: Tue > Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64. > > > ---- CODE --- > $s = "2433078805"; > var_dump($s); > var_dump((int) $s); exit; > > ----- EXPECTED ----- > string(10) "2433078805" int(2433078805) > > ----- ACTUAL ----- > string(10) "2433078805" int(2147483647) > > > Random or what? > > Regards, > Paul Dragoonis. > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.internals (#56430) next »