#46483 [Opn->Csd]: ext/soap does not convert unsigned longs with values >2147483647 to floats
| From: | felipe@php.net | Date: | Fri, 07 Nov 2008 16:02:32 +0000 |
| Subject: | #46483 [Opn->Csd]: ext/soap does not convert unsigned longs with values >2147483647 to floats | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-130758@lists.php.net to get a copy of this message | ||
ID: 46483
Updated by: felipe@php.net
Reported By: rosiefitzpatrick at grouplogic dot com
-Status: Open
+Status: Closed
Bug Type: SOAP related
Operating System: Mac OS 10.5.5
PHP Version: 5.2.6
Previous Comments:
------------------------------------------------------------------------
[2008-11-05 18:28:03] rosiefitzpatrick at grouplogic dot com
The snapshot does not contain this bug. On 32-bit Leopard it converts
to a float with the correct value just as it does on Tiger. Thank you!
------------------------------------------------------------------------
[2008-11-04 22:27:43] jani@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2008-11-04 17:24:35] rosiefitzpatrick at grouplogic dot com
Description:
------------
On a 32-bit Leopard system (Intel Core Duo), when my SOAP server
returns an unsigned long whose value is greater than 2147483647, the
SoapClient interprets this value as an integer with value 2147483647.
On a 64-bit Leopard system (Intel Core 2 Duo), the SoapClient interprets
the value as an integer with the correct value (whatever was in the XML
from the server).
On a 32-bit Tiger (Mac OS X 10.4) system running PHP 5.2.0, it comes
back from the SoapClient class as a float with the correct integer value
that was sent from the server.
Expected result:
----------------
According to the PHP docs (and the behavior of ext/soap in 5.2.0), an
integer with greater than maximum value is converted to a float.
Actual result:
--------------
Instead of converting the unsigned long to a float and retaining the
value, it remains an integer with PHP_INT_MAX value.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=46483&edit=1