Есть скрипт:
$passport = '28 48 399999';
$passport = str_replace(' ','', $passport);
$passport = intval($passport);
var_dump($passport);
Его dump: int(2147483647)
Вопрос: почему? пробелы убрал, а в число преобразует кое-как...
Ответ
2 147 483 647 — это 231–1, максимальное целое число, помещающееся в 32 бита. Ваше число 2 848 399 999 больше, поэтому PHP решил преобразовать его к самому близкому значению, которое может быть представлено.
Похапэ искаропки не умеет в длинные целые. Должны быть математические пакеты, если вам это действительно нужно.
Комментариев нет:
Отправить комментарий