作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在使用 is_nan()
函数(即 is-not-a-number)来检查从查询字符串中获取的变量是否为数字。然而,在变量是字符串的情况下(在这种情况下 is_nan()
应该返回 TRUE
),该函数还会抛出以下相当烦人的警告:
Warning: is_nan() expects parameter 1 to be double, string given
既然 is_nan()
用于检查变量是否不是 数字,为什么它会为字符串抛出错误?我原以为它应该接受非数字参数,因为这是它的目的......
是否有引发此类警告的原因?有什么我在这里没有看到的感觉吗?
注意:当抛出错误时,该函数仍按预期运行 - 它为字符串返回 TRUE,为数字返回 FALSE。但是,我想知道为什么它也会在字符串的情况下发出警告。
从那以后,我也开始使用 is_int()
,因为我发现它更适合我的目的,所以我不在寻找替代品。我只是对这种行为感到好奇。
最佳答案
该函数用于检查数学函数和运算的返回值的有效性(参见 NaN@wikipedia )并需要一个 float 作为参数。示例取自 function's documentation :
$nan = acos(8);
var_dump($nan, is_nan($nan));
# prints:
float(NAN)
bool(true)
您可能想要的是 is_numeric()
:
if (!is_numeric($arbitraryType)) {
关于PHP 函数 is_nan() 对字符串抛出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1377922/
我一直在使用 is_nan() 函数(即 is-not-a-number)来检查从查询字符串中获取的变量是否为数字。然而,在变量是字符串的情况下(在这种情况下 is_nan() 应该返回 TRUE),
我是一名优秀的程序员,十分优秀!