这不起作用......如果我插入任何数字,它显示错误..但为什么?
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';
}
答案 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
的答案也是一个不错的选择,如果不是更好的话。