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