AlexPTS
@AlexPTS
Full stack веб разработчик

PHP_INT_MAX в windows_x64 php_x64 5.5

Проблема с int PHP_INT_MAX показывает как в x32 2147483647

Стоит win 7 x64, MSVC++ 2008 x64, MSVC++ 2012 x64, php 5.5.5 x64

Phpinfo
PHP Version 5.5.5

Build Date Oct 15 2013 11:43:22
Compiler MSVC11 (Visual C++ 2012)
Architecture x64
Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--disable-static-analyze" "--with-pgo"
Server API CGI/FastCGI
Virtual Directory Support disabled
Configuration File (php.ini) Path C:\Windows
Loaded Configuration File…
Scan this dir for additional .ini files (none)
Additional .ini files parsed (none)
PHP API 20121113
PHP Extension 20121212
Zend Extension 220121212
Zend Extension Build API220121212,NTS,VC11
PHP Extension Build API20121212,NTS,VC11
Debug Build no
Thread Safety disabled
Zend Signal Handling disabled
Zend Memory Manager enabled
Zend Multibyte Support provided by mbstring
IPv6 Support enabled
DTrace Support disabled
Registered PHP Streams php, file, glob, data, http, ftp, zip, compress.zlib, https, ftps, phar
Registered Stream Socket Transports tcp, udp, ssl, sslv3, sslv2, tls
Registered Stream Filters convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*


Почему PHP_INT_MAX в php 2147483647?
Как это исправить?
  • Вопрос задан
  • 3586 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Я вот такое нарыл: stackoverflow.com/questions/864058/how-to-have-64-bit-integer-on-php
Т.е. фича винды, long int — 4 байта и на 32 и на 64-битных архитектурах, а под Linux — 4 и 8, соответственно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tvolf
@tvolf
Судя по этому треду на stackoverflow, имеются какие-то нюансы сборки PHP 64-битной версии под Windows, когда в C-коде в качестве int переменных продолжают использоваться 4-байтовые значения типа LONG. Под Linux такой проблемы нет, если я правильно понял.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы