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

时间:2014-11-06 05:46:38

标签: 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';
            }

3 个答案:

答案 0 :(得分:1)

请使用:

if (!is_numeric($_POST['phn_number_1'])) {

    $error[] = 'Please insert only integer! in "Phone number 1" Field ';
}

你的方法也有效!但你必须确定它不是一个字符串!如果您使用的是is_numeric,它也可以是一个字符串!

答案 1 :(得分:1)

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

相反,请查看filter_var

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

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

答案 2 :(得分:0)

以下是一个免费的答案。

这仅适用于数字。没有点,空格等只是整数,如果您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的答案也是一个不错的选择,如果不是更好的话。