Я установил 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