如何在PHP中检查我的输入字段是否包含整数值


How to check my input field contains integer value in PHP?

这不起作用。。。如果我插入任何数字,它显示错误。。但为什么呢?

        if (is_integer($_POST['phn_number_1']) === false) {
                # code...
                $error[] = 'Please insert only integer! in "Phone number 1" Field ';
            }
            if (is_integer($_POST['phn_number_2']) === false) {
                # code...
                $error[] = 'Please only instert only integer in "phoner number 2" Field';
            }

is_integer检查变量类型(HTTP帖子中的所有类型都是字符串或数组)。

相反,请检查filter_var:

if (filter_var($_POST['phn_number_1'], FILTER_VALIDATE_INT) === false) {
    // not an integer!
}

任何非整数(浮点、八进制等)都将返回false。

只需使用此:

if (!is_numeric($_POST['phn_number_1'])) {
    $error[] = 'Please insert only integer! in "Phone number 1" Field ';
}

你的方法也有效!但你必须确定它不是一根绳子!如果你使用的是数字,它也可以是字符串!

以下是一个补充答案。

这只适用于数字。没有点、空格等,只有整数,如果您100%确定代码仅适用于{...,-2,-1,0,1,2,...},则

$var1 = $_POST['phn_number_1'];
if((string)(int)$var1 == $var1){ echo "All systems go."; } 
else{ echo "Sorry Charlie."; }

  • 然而,webbiedave的答案即使不是更好,也是一个不错的选择