демо
$code = '40001042901';
echo (int)$code; //intval($code) //same
Я тестировал на Linux (Ubuntu) результат 40001042901, но на Windows результат 2147483647, что с этим не так?
XAMPP 1.8.3, PHP 5.5.15, Apache 2.4.10 (Win32)
демо
$code = '40001042901';
echo (int)$code; //intval($code) //same
Я тестировал на Linux (Ubuntu) результат 40001042901, но на Windows результат 2147483647, что с этим не так?
XAMPP 1.8.3, PHP 5.5.15, Apache 2.4.10 (Win32)
Ваш результат Linux создается с использованием 64-битного программного обеспечения. Результат Windows исходит от 32-битного программного обеспечения. Разница здесь в максимальном размере целого числа, который в 32-битной системе равен 2 147 483 647.
Когда вы пытаетесь преобразовать строку в целое число, значение слишком велико для 32-битного значения, поэтому PHP использует наибольшее доступное значение.
В 64-битной системе целые числа могут быть намного больше, поэтому PHP может использовать фактическое значение, проанализированное из вашей строки.