php数字类型判断,正整数、整数、正数、正小数、负整数、小数、负数、负小数

2016年6月30日原创教程 建站历程评论19,7592

php数字类型判断,正整数、整数、正数、正小数、负整数、小数、负数、负小数文章源自狐狸影视城-https://fox-studio.net/31740.html

wordpress表单提交经常会判断数字,偶尔也会限制用户输入整数或小数,或不允许负数。文章源自狐狸影视城-https://fox-studio.net/31740.html

比如说会员站内转账,如果没有封闭负数的话,转账负数,会导致增加用户的资产,从而自己给自己充值。网上没有找到判断的写法。自己就测试研究。文章源自狐狸影视城-https://fox-studio.net/31740.html

同时发现一个问题,我用的xammp本地环境,使用 is_int() 无法或的数字的整/小数类型,不知道为什么,最后使用四舍五入的方式来判断文章源自狐狸影视城-https://fox-studio.net/31740.html

比如:文章源自狐狸影视城-https://fox-studio.net/31740.html

  1. $num=5;
  2. if(floor($num)==$num){$result=ture}else{$result=false};
  3. echo $result;
  4. //输出:true
  5. $num=5.2;
  6. if(floor($num)==$num){$result=ture}else{$result=false};
  7. echo $result;
  8. //输出:false

 文章源自狐狸影视城-https://fox-studio.net/31740.html

以此思路,写入function中,代码如下。文章源自狐狸影视城-https://fox-studio.net/31740.html

  1. //正整数判断
  2. function positive_integer($num,$positive=true,$int=true){
  3.     if($num)
  4.     {
  5.         if(is_numeric($num)){
  6.             if($positive && $num>0 && !$int){
  7.                 return '正数';        //正数
  8.             }elseif($int && floor($num)==$num && !$positive){
  9.                 return '整数';        //整数
  10.             }elseif($positive && $int && $num>0 && floor($num)==$num){
  11.                 return '正整数';   //正整数
  12.             }elseif($positive && $int && $num>0 && floor($num)!=$num){
  13.                 return '正小数';   //正小数
  14.             }elseif($positive && $num<0 && !$int){
  15.                 return '负数';        //负数
  16.             }elseif($int && floor($num)!=$num && !$positive){
  17.                 return '小数';        //小数
  18.             }elseif($positive && $int && $num<0 && floor($num)!=$num){
  19.                 return '负小数';   //负小数
  20.             }elseif($positive && $int && $num<0 && floor($num)==$num){
  21.                 return '负整数';   //负整数
  22.             }else{
  23.                 return '未知类型的数字';
  24.             }
  25.         }else{
  26.             return '不是数字';  //不是数字
  27.         }
  28.     }elseif($num==='0'){
  29.         return '等于0';   //0
  30.     }else{
  31.         return '不存在';   //不存在
  32.     }
  33. }

 文章源自狐狸影视城-https://fox-studio.net/31740.html

使用方法:文章源自狐狸影视城-https://fox-studio.net/31740.html

  1. function positive_integer($num,$positive=true,$int=true);
  2. /**
  3.  * $num            输入字符串
  4.  * $positive     正负判断开关
  5.  * $int               整数/小数判断开关
  6.  */

 文章源自狐狸影视城-https://fox-studio.net/31740.html

上面的方法,必须写名值等于那个。文章源自狐狸影视城-https://fox-studio.net/31740.html

如果function,想只用true和false作为结果的话。做以下修改即可文章源自狐狸影视城-https://fox-studio.net/31740.html

  1. function positive_integer($num,$positive=true,$int=true){
  2. /**
  3.  * $num         字符串判断
  4.  * $positive    正负判断
  5.  * $int         整数/小数判断
  6.  */
  7.     if($num)
  8.     {
  9.         if(is_numeric($num)){
  10.             if($positive && $num>0 && !$int){
  11.                 return true;        //正数
  12.             }elseif($int && floor($num)==$num && !$positive){
  13.                 return true;        //整数
  14.             }elseif($positive && $int && $num>0 && floor($num)==$num){
  15.                 return true;    //正整数
  16.             }elseif($positive && $int && $num>0 && floor($num)!=$num){
  17.                 return true;    //正小数
  18.             }elseif($positive && $num<0 && !$int){
  19.                 return false;       //负数
  20.             }elseif($int && floor($num)!=$num && !$positive){
  21.                 return false;       //小数
  22.             }elseif($positive && $int && $num<0 && floor($num)!=$num){
  23.                 return false;   //负小数
  24.             }elseif($positive && $int && $num<0 && floor($num)==$num){
  25.                 return false;   //负整数
  26.             }else{
  27.                 return false; //未知类型的数字
  28.             }
  29.         }else{
  30.             return false;   //不是数字
  31.         }
  32.     }elseif($num==='0'){
  33.         return false;
  34.     }else{
  35.         return true;    //表单未填写
  36.     }
  37. }

 文章源自狐狸影视城-https://fox-studio.net/31740.html

使用方法:文章源自狐狸影视城-https://fox-studio.net/31740.html

  1. positive_integer($num);
  2. //判断正负和小数。结果为正整数true,负整数false
  3. positive_integer($num,false);
  4. //不判断正负,只判断小数。结果为整数true,小数false
  5. positive_integer($num,true,false);
  6. //判断正负,不判断小数。结果为正数true,负数false
  7. //如果想判断是否为正小数,动下脑子:
  8. if(positive_integer($num,true,false) && !positive_integer($num,false)){
  9.     //正小数
  10. }
文章源自狐狸影视城-https://fox-studio.net/31740.html
weinxin
千年骚狐
  • 本文由 发表于 2016年6月30日
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定