从表单获取变量:
<form method = 'POST' action = ''> <input type = 'text' name = 'a' size = '1' > <input type = 'submit' value = 'Find it'> </form>"
如果我输入1并使用gettype($ POST _ [‘a’]),它将返回字符串,可以输入int吗?因为在此之后,我要检查该变量是否为int。
更新
得到的答案是,它总是返回字符串,他们为我提供了使用(int)或intval()的方法,但是如果它真的像’a’这样的字符串,它会返回0,但它也可能是整数值0,如何克服这个问题?
编辑错字后,Brad Christie建议使用is_numeric的最佳方法
// convert the $_POST['a'] to integer if it's valid, or default to 0 $int = (is_numeric($_POST['a']) ? (int)$_POST['a'] : 0);
您可以使用is_numeric进行检查,并且php也允许转换为整数类型。
对于实际比较,您可以执行is_int。
更新资料
filter_input对于此数据类型(和其他数据类型),版本5.2 可能更健壮:
filter_input
$int = filter_input(INPUT_POST, 'a', FILTER_VALIDATE_INT);
我选择FILTER_VALIDATE_INT,但也有FILTER_SANITIZE_NUMBER_INT和很多更 --IT只是取决于你想做的事情。
FILTER_VALIDATE_INT
FILTER_SANITIZE_NUMBER_INT