Правильный способ преобразования строки в long int в PHP
Я пробовал (int) "4209531264"
и intval("4209531264")
но, к сожалению, все, что я получаю, это 2147483647
(я понимаю, это из-за 32-битной архитектуры или некоторых зависимостей php или чего-то еще).
Я придумал "4209531264" + 0
, который возвращает правильный результат, но удивительно видеть, что он работает, поскольку он находится за пределами maxint.
но реальный вопрос: это "правильный путь" преобразования строки в длинный?
изменить:
(float)
.
спасибо за комментарии! открытие глаз!
Ответы
Ответ 1
Пока вы не очень подробно относитесь к тому, что именно вы получаете, "number" + 0
, вероятно, лучший способ преобразования вашего ввода, потому что он преобразуется в "естественный" числовой тип данных.
Результат будет целочисленным, если вход не имеет десятичной части и подходит (см. PHP_INT_MAX
) или float, если это не так.