php 64 бит с php_int_max = 2147483647

Я установил WampServer 2.0 с apache 2.4.4, mysql 5.6.12 и php 5.4.12. Когда я эхо PHP_INT_MAX, он дал мне 2147483647. У меня также есть echo phpinfo (), а в архитектуре указано x64. Это, предположим, не происходит, потому что мой php имеет 64-битное право? Мне нужно, чтобы мой php поддерживал 64-битное целое число. Мне нужно, чтобы мой PHP_INT_MAX был 9223372036854775807.

Может кто-нибудь мне помочь? благодаря

Если вы используете ОС Windows, то вамперский сервер предлагает вам, это ваш ответ :

В Windows x86_64 PHP_INT_MAX – 2147483647. Это связано с тем, что в базовом c-коде длинный 32-битный.

Обратите внимание, что это не означает, что Windows не поддерживает 64- int64_t int: int64_t существует, но он не используется PHP AFAIK.
Мне удалось найти эту ссылку , на этой странице есть код, который вы могли бы использовать, чтобы добавить поддержку для 64-битных ints к вашему коду

В файле RequestUtil.php выполняется следующая проверка:

 if (strlen((string) PHP_INT_MAX) < 19) { // Looks like we're running on a 32-bit build of PHP. This could cause problems because some of the numbers // we use (file sizes, quota, etc) can be larger than 32-bit ints can handle. throw new \Exception("The Dropbox SDK uses 64-bit integers, but it looks like we're running on a version of PHP that doesn't support 64-bit integers (PHP_INT_MAX=" . ((string) PHP_INT_MAX) . "). Library: \"" . __FILE__ . "\""); } 

Вы можете прокомментировать это и попытаться взломать свой путь оттуда.

Если бы я был вами, я бы написал свою собственную реализацию Dropbox API, используя строки, а не целые числа.

PS : Но это то, что я делаю, мне это нравится 🙂

Попробуйте PHP7 – текущий мастер http://windows.php.net/downloads/snaps/master/ . 64-битные сборки теперь используют все возможности 64-битной Windows.

Перейдите к 'vendor / dropbox / dropbox-sdk / lib / Dropbox'
и строки комментариев 19-23 в RequestUtil.php.

Комментарий к этому разделу:

 /*if (strlen((string) PHP_INT_MAX) < 19) { // Looks like we're running on a 32-bit build of PHP. This could cause problems because some of the numbers // we use (file sizes, quota, etc) can be larger than 32-bit ints can handle. throw new \Exception("The Dropbox SDK uses 64-bit integers, but it looks like we're running on a version of PHP that doesn't support 64-bit integers (PHP_INT_MAX=" . ((string) PHP_INT_MAX) . "). Library: \"" . __FILE__ . "\""); }*/ 

Вот и все.

Я пробовал php7, и он работал:

running php.exe -r "echo PHP_INT_MAX;"

и он выводит 9223372036854775807