我希望我的表单输入为整数...但仅当它是这样提交的时候

时间:2011-03-11 20:19:42

标签: php string casting integer

因为看起来intval只返回0,如果它不是整数(我有时在输入中想要0),并且因为is_int不评估字符串输入来告诉我,如果它是一个整数(我只是不熟悉变量为(int)如果它不是一个整数)。

正确的方法是什么?

5 个答案:

答案 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)

您可以将is_int与is_string结合使用吗?

例如:

if(is_int(x) == 0 && is_string(x))

答案 3 :(得分:0)

$input =  preg_match("/^[0-9]{1,}$/",$input) ? (int)$input:$input;

答案 4 :(得分:0)

相同的答案,如亚光但更容易阅读:

preg_match('/^\d+$/', $x)

但如果你的系统有ctype,那么{{1}}可能会更快。