Могу ли я определить PHP_INT_SIZE равным 4 байтам в 64-битной системе с PHP?

Я использую PHP 5.3.

В моей 32-битной системе размер INT:

print "PHP_INT_MAX: " . PHP_INT_MAX . "\n";
print "PHP_INT_SIZE: " . PHP_INT_SIZE . " bytes (" . (PHP_INT_SIZE * 8) . " bits)\n";
  • PHP_INT_MAX: 2147483647
  • PHP_INT_SIZE: 4 байта (32 бита)

Однако часть алгоритма кодирования I Я использую полагается на тот факт, что int имеет размер выше (4 байта). Когда я запускаю код на сервере моего веб-хоста, это 64-разрядная система, а размер int вдвое больше.

Есть ли способ заставить приведение "(int)" использовать 32-битный размер?

Например, предположим следующий код:

$test = 4170266799;
print $test;                     
print (int) $test;

В моей 32-битной системе, вывод следующий:

4170266799
-124700497

В моей 64-битной системе вывод следующий:

4170266799
4170266799

Можно ли принудительно установить значение INT равным 4 байтам, даже если архитектура изменилась с 32- бит на 64-битный?

15
задан hakre 21 October 2012 в 13:46
поделиться