似乎PHP is_NaN()
函数没有返回任何内容(不返回true
或false
)。以下是未返回任何内容的代码:
$id = 111;
$booltest = is_nan($id);
if ($booltest) {
echo 'Invalid ID: "' . $id . '"';
exit();
}
它也不会触发if语句。我正在使用PHP5。有没有人知道解决方法或解决这个问题的方法?感谢。
答案 0 :(得分:2)
我认为您可能会将is_nan
与!is_numeric
混为一谈。
NaN
(“非数字”)是一个特定的浮点值,代表某些无法用实数表示的数学结果。例如,负数的平方根:
$x = sqrt(-1);
var_dump($x);
var_dump(is_nan($x));
var_dump(is_numeric($x));
输出:
float(NAN)
bool(true)
bool(true)
is_nan
仅测试浮点数,仅返回true
特定的浮点值NaN。如果你给它一个字符串,它将返回null
因为参数不是float类型。所以听起来你正在寻找is_numeric
:
$x = "asdf";
var_dump(is_nan($x));
var_dump(is_numeric($x));
$y = 111;
var_dump(is_nan($y));
var_dump(is_numeric($y));
输出:
NULL
bool(false)
bool(false)
bool(true)
答案 1 :(得分:1)
is_nan()
不会检查变量的数据类型是否为数字。有一种名为not a number
或NaN
的东西告诉我们这个数字不是可表示的形式。 is_nan()
函数检查数字是否为NaN。
如果要检查整数,可以使用is_int()
。
如下所示:
$id = 111;
$booltest = is_int($id);
if ($booltest) {
echo 'Invalid ID: "' . $id . '"';
exit();
}