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