我目前有一个包含输入的表单:
<input type="text" name="score" id="score" value="" />
标准:我需要此输入中的值低于40且为正整数或零。
阅读了关于php.net
和is_int()
的{{1}}。它建议将is_numeric()
与表单字段一起使用,因为它们始终是数字字符串。
我想检查一下这个值是否符合上述条件但是不遵循我在上述情况下的做法。
is_numeric()
我上面的问题是浮点数会通过此测试而不使用像<?php
$score = $_POST['score'];
if(is_numeric($score) && $score <= 40){
// Do good stuff
} else {
// Don't do good stuff
} ?>
之类的东西我不能使用(int) $score
然后否定is_int()
检查。
我在这里遗漏了什么吗?
答案 0 :(得分:0)
使用ctype_digit()来确保字符串只包含数字,因此是一个整数 - 从技术上讲,这会返回true
也包含超出int范围的非常大的数字。 注意,此方法无法识别负数。
答案 1 :(得分:0)
<?php
$score = $_POST['score'];
if(ctype_digit($score) && $score <= 40){
// Do good stuff
} else {
// Don't do good stuff
}
?>