为何安装64位PHP 5.6.40,PHP_INT_SIZE却返回4(32位标识)?
问题原因解析
- PHP 5.6的Windows 64位版本存在特殊设计:当时PHP在Windows平台的64位支持还未完全成熟,为了兼容大量旧扩展和遗留代码,官方编译的NTS X64版本依然采用32位整数模型,所以
PHP_INT_SIZE返回4,代表int类型是32位,但这不影响整个程序是64位进程(可通过phpinfo()里的Architecture项确认是x64)。 - PHP 7及后续版本彻底重构了Windows平台的64位实现,全面启用64位整数类型,因此
PHP_INT_SIZE会返回8,符合64位环境的预期。 - 补充:Linux或macOS平台上的PHP 5.6 64位版本不存在这个问题,
PHP_INT_SIZE会正常返回8,这是Windows平台特有的兼容策略导致的差异。
内容的提问来源于stack exchange,提问作者Adri Cist
相关产品推荐
相关产品推荐

