因为看起来intval只返回0
,如果它不是整数(我有时在输入中想要0),并且因为is_int不评估字符串输入来告诉我,如果它是一个整数(我只是不熟悉变量为(int)
如果它不是一个整数)。
正确的方法是什么?
答案 0 :(得分:1)
您可能需要查看ctype_digit()
函数(引用):
bool ctype_digit ( string $text )
如果每个角色都返回TRUE
在字符串$text
中是小数 数字,否则为FALSE
。
使用它来测试输入的内容,然后您应该能够决定如何处理它,具体取决于它是否包含整数。
我想这样的事情可以解决这个问题:
if (ctype_digit($_POST['your_field'])) {
// it's an integer => use it
} else {
// Not an integer
}
答案 1 :(得分:0)
也许试试is_numeric。根据文档中的示例,这正是您想要的。
答案 2 :(得分:0)
答案 3 :(得分:0)
$input = preg_match("/^[0-9]{1,}$/",$input) ? (int)$input:$input;
答案 4 :(得分:0)
相同的答案,如亚光但更容易阅读:
preg_match('/^\d+$/', $x)
但如果你的系统有ctype
,那么{{1}}可能会更快。