В PHP 5 я использую intval() всякий раз, когда я получаю числа в качестве ввода. Таким образом, я хочу убедиться, что я не получаю ни строк, ни плавающих чисел. Мои номера ввода должны быть целыми числами. Но когда я получаю числa >= 2147483647, предел целочисленного знака скрещен.
Что я могу сделать, чтобы иметь эквивалент intval() для чисел всех размеров?
Вот что я хочу иметь:
<?php
$inputNumber = 3147483647.37;
$intNumber = intvalEquivalent($inputNumber);
echo $intNumber; // output: 3147483647
?>
Спасибо вам заблаговременно!
Изменить: на основании некоторых ответов я попытался закодировать эквивалентную функцию. Но он не работает точно так же, как intval(). Как я могу улучшить его? Что с ним не так?
function intval2($text) {
$text = trim($text);
$result = ctype_digit($text);
if ($result == TRUE) {
return $text;
}
else {
$newText = sprintf('%.0f', $text);
$result = ctype_digit($newText);
if ($result == TRUE) {
return $newText;
}
else {
return 0;
}
}
}