PHP 4.0 Bug #6678 Updated: Different behaviour of arithmetic operations on Linux PHP and Windows PHP

From: Date: Sun, 15 Oct 2000 15:25:46 +0000
Subject: PHP 4.0 Bug #6678 Updated: Different behaviour of arithmetic operations on Linux PHP and Windows PHP
Groups: php.dev 
Request: Send a blank email to php-dev+get-35049@lists.php.net to get a copy of this message
ID: 6678 Updated by: lyric Reported By: info@emre.de Status: Analyzed Bug Type: Unknown/Other Function Assigned To: Comments: Your problem is probably due to the size of the numeric datatype (which is system dependant). The number that you're passing is actually too big (ie: over 2 billion). See http://www.php.net/manual/language.types.php Previous Comments: --------------------------------------------------------------------------- [2000-09-12 05:41:28] info@emre.de <html> <body> <? /* Fuction to turn an integer into an ip address */ function int2ip($int) { // There are 4 bytes to handle, so let´s go for it .... for ($i=0 ; $i < 4 ; $i++) { // Let´s leave only the first 8 bits, kill the rest and assign the value to an array element $bytes[$i] = $int & 0xFF; // Now move the remaining bits to the right and go on with the next byte ... $int = $int >> 8; } // The array containing the bits is joined to a string, the bytes separated by a dot $ip = "$bytes[3].$bytes[2].$bytes[1].$bytes[0]"; return ($ip); } print int2ip(3232235648); /* Result should be 192.168.0.128. On WAMP it works fine, on LAMP it doesn´t. Maybe this one´s not bug but I´m too dump - still this "wrong" behaviour has been verfied on several Linux systems running Apache and PHP. The correct one has been verified on three Windows systems running Apache and PHP (latest) */ ?> </body> </html> --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=6678

« previous php.dev (#35049) next »