Ben bir girdi olarak numaralarını almak her PHP 5, I intval () kullanın. Bu şekilde, ben hiçbir dizeleri veya yüzer numaralarını almak emin olmak istiyorum. Benim giriş numaraları tüm tam sayılar olmalıdır. Sayıları> = 2147483647 olsun Ama, imzalı tamsayı sınırı geçtiği.
Ne tüm boyutlarda numaralar için bir intval () eşdeğeri olması için ne yapabilirim?
İşte ben istiyorum ne:
<?php
$inputNumber = 3147483647.37;
$intNumber = intvalEquivalent($inputNumber);
echo $intNumber; // output: 3147483647
?>
Şimdiden çok teşekkür ederiz!
Edit: bazı cevaplar dayanarak, ben eşdeğer bir fonksiyonu kod denedim. Ama henüz () yaptığı tam olarak intval çalışmıyor. Bunu nasıl artırabilir? Bunun nesi yanlış?
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;
}
}
}