一尘不染

如何从表格中获取整数而不是字符串?

php

从表单获取变量:

<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的最佳方法


阅读 187

收藏
2020-05-29

共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

更新资料

filter_input对于此数据类型(和其他数据类型),版本5.2 可能更健壮:

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

我选择FILTER_VALIDATE_INT,但也有FILTER_SANITIZE_NUMBER_INT很多更
--IT只是取决于你想做的事情。

2020-05-29