Если вы хотите обрабатывать числа произвольной точности, вам нужно использовать расширение gmp . Например, функция gmp_init()
преобразует строку в объект ресурса gmp. недостатком является то, что вы должны использовать другие функции этого расширения для дальнейшей обработки этого объекта. Преобразование его обратно в строку выполняется, например, с помощью gmp_strval()
.
$gmpObject = gmp_init($string, 10);
if ($gmpObject === FALSE) {
# The string was not a valid number,
# handle this case here
}
echo gmp_strval($gmpObject);
Возможно, вы захотите только проверить , что строка представляет допустимое число, и использовать саму строку, если вы не собираетесь выполнять какие-либо операции со значением. Это можно сделать с помощью регулярного выражения:
$containsInt = preg_match('/^\d+$/', $string);
# Or for floating point numbers:
$containsFloat = preg_match('/^\d+(.\d+)?$/', $string);
echo $string;
Другой вариант - использовать is_numeric()
. Но эта функция делает больше преобразований, чем вы могли бы. Цитирование из документов этой функции:
... + 0123.45e6 является допустимым числовым значением ...