Проверка, работает ли ваш код на 64-битном PHP

Кто-нибудь знает способ проверки внутри PHP, если скрипт работает как 32-разрядный, так и 64-битный? В настоящее время я использую PHP 5.3.5.

В идеале я хотел бы написать функцию, чтобы мой код выглядел так:

if( is_32bit() === true ) { do_32bit_workaround(); } do_everything_else(); 

У кого-нибудь есть мысли?

Проверьте константу PHP_INT_SIZE . Он будет меняться в зависимости от размера регистра (например, 32-битного и 64-битного).

В 32-битных системах PHP_INT_SIZE должно быть 4 , для 64-битного – 8 .

Подробнее см. http://www.php.net/manual/en/language.types.integer.php .

Вы можете написать такую ​​функцию:

 function is_32bit(){ return PHP_INT_SIZE === 4; } 

Затем вы можете использовать образец кода, который вы опубликовали:

 if ( is_32bit() ) { do_32bit_workaround(); } else { do_everything_else(); } 

Я просто огляделся и не нашел ничего слишком многообещающего. Есть хороший шанс, что вы можете использовать $_SERVER['SERVER_SOFTWARE'] чтобы сказать (проверьте, что он печатает в вашей системе), но сделать этот переносной и всегда точный, вероятно, не выполнимо.

Попробуйте эту простую функцию PHP

 <?php function maxBit() { list($return, $number) = array(0, 0); // Start process while (true) { // Get number at x bits $numX = intval(bcsub(bcpow('2', "{$return}"), '1')); // Check number if ($numX != 0 && $number == $numX) { break; } // Update number $number = $numX; // Update return value $return++; } return $return; } // Check is 64bit if (maxBit() == 64) { // Write your code here... }