Мне нужно проверить, является ли параметр (строка или int или float) "большим" целым числом. Под "большим целым числом" я подразумеваю, что он не имеет десятичных знаков и может превышать PHP_INT_MAX
. Он используется как временная метка msec, внутренне представленная как float.
ctype_digit
приходит в голову, но вводит строковый тип. is_int
, поскольку вторичная проверка ограничена диапазоном PHP_INT_MAX
, а is_numeric
будет принимать поплавки с десятичными знаками, чего я не хочу.
Можно ли полагаться на что-то подобное или есть лучший способ:
if (is_numeric($val) && $val == floor($val)) {
return (double) $val;
}
else ...