这是PHP代码,我想检查是否存在无效值:
$response = $_POST['response'];
$visibility = $_POST['visibility'];
if($response == NULL || $visibility == NULL ){
printf("Invalid input: %s\n", mysqli_connect_error());
echo "<br/><a href='myevents.php'>Back to previous page</a>";
exit();
}
$response
和$visibility
应为整数值
所以如果人们把我想要的字符串值转到if($response == NULL || $visibility == NULL )
语句。
如何编写语句$response == ???
答案 0 :(得分:1)
使用is_numeric
将提供所需的结果。 is_numeric
查找给定变量是否为数字
if (!is_numeric($response) || is_numeric($visibility))
echo "Invalid input";
有人建议is_int()
。不要使用is_int()
。改为使用is_numeric()。
将以下代码块复制到php文件中并运行它。你会对结果感到惊讶:
$t = "12345";
if( is_int($t ) ) {
echo $t . " is an int!";
} else {
echo $t . " is not an int!";
}
问题是is_int()
认为一串数字是一个字符串,而不是一个整数。
两者之间的关键区别是检查变量类型is_int()
,另一个检查变量值is_numeric()
。
答案 1 :(得分:0)
您可以尝试使用is_nan()
功能,
if(is_nan($response) || is_nan($visibility)){
printf("Invalid input: %s\n", mysqli_connect_error());
echo "<br/><a href='myevents.php'>Back to previous page</a>";
exit();
}
var_dump(NAN == NAN); // boolean true
var_dump(NAN === NAN); // boolean true
var_dump(is_nan(NAN)); // boolean true
var_dump(NAN == 12); // boolean true
var_dump(NAN === 12); // boolean false
var_dump(is_nan(12)); // boolean false
var_dump(NAN == 12.4); // boolean true
var_dump(NAN === 12.4); // boolean true
var_dump(is_nan(12.4)); // boolean false
var_dump(NAN == NULL); // boolean true
var_dump(NAN === NULL); // boolean false
var_dump(is_nan(NULL)); // boolean false
var_dump(NAN == 'K<WNPO'); // boolean true
var_dump(NAN === 'K<WNPO'); // boolean false
var_dump(is_nan('K<WNPO')); // null and throws a warning "Warning: is_nan() expects parameter 1 to be double, string given in NANTest.php on line 13"
答案 2 :(得分:0)