PHP中的!is_numeric函数不接受NULL VALUE

我正在尝试验证某个输入,其中用户只能输入整数值…否则将执行错误消息

$user_mcc = $_REQUEST['mobile_countrycode'];
if($user_mcc == ""){
    is_numeric($_REQUEST['mobile_countrycode']);
}

if (!is_numeric($_REQUEST['mobile_countrycode'])){

    echo '<script type="text/javascript">alert("Not a numeric value!\n\nMake sure that your country codes, area codes\nand mobile/fax/phone numbers are correct! \n"); return true;</script>';
    echo '<script type="text/javascript">history.back();</script>'; 
    die('' . MysqL_error());



}

我已经尝试了很多函数,比如empty,is_null,== NULL,==’NULL等等……但它没有用.

如果我将一个字符串值放入输入文本字段,就像我输入…“Banana”,可以执行上面的!is_numeric函数,因为输入的值是FALSE而不是数值.

但是,每当我将输入字段留空为NULL时,仍然可以执行!is_numeric函数,就像它将NULL值识别为非数值一样.如果输入值为NULL,我该怎么做才能绕过!is_numeric函数.谢谢.

PS:我已经尝试了!is_int,!is_integer和ctype_digit,但结果相同,它不接受NULL值.

解决方法:

这可能是因为null不是数值.它是无效的;它什么都没有,它肯定不等于整数0.如果你想检查一个数值,或者为null,那么这正是你应该做的:

if( $yourvalue !== null && !is_numeric( $yourvalue ) ) {
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...