如何从形式中获取int代替字符串?

2022-08-30 17:33:05

从窗体获取变量:

<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


答案 1
// 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

更新

版本5.2具有filter_input对于此数据类型(以及其他数据类型)可能更健壮一些:

$int = filter_input(INPUT_POST, 'a', FILTER_VALIDATE_INT);

我选择了,但还有更多 - 这取决于你想做什么。FILTER_VALIDATE_INTFILTER_SANITIZE_NUMBER_INT


答案 2

通过HTTP通过网络发送,一切都是字符串。由您的服务器决定“1”应该是 .1


推荐