#46483 [Opn->Csd]: ext/soap does not convert unsigned longs with values >2147483647 to floats

From: 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

« previous php.bugs (#130758) next »