PHP: 64bit mimari paketi / unpack 64bit int

0 Cevap php

Ben x64 mimarisi üzerine aşağıdaki çıktıyı almak neden herkes bana söyleyebilir:

$ php -r 'echo pow(2, 33) . "\n";print_r(unpack("Ivalue", pack("I", pow(2, 33))));'
8589934592
Array
(
    [value] => 0
)

Bu imzalı 64bit İnts işleyebilir sanki görünüyor, ancak bunları açmak / paketi olamaz. Docs göre: http://us3.php.net/pack, I boyutu bu durumda 64bit olan makine bağımlı olmalıdır.

Teşekkürler.

EDIT
Should have mentioned this in the original post:

$ php -r 'echo PHP_INT_MAX;'
9223372036854775807

EDIT 2

$ php -v
PHP 5.2.9 (cli) (built: Apr 17 2009 03:29:14)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

0 Cevap