PHP判断变量是否是整数?最佳方法

今天有一个简单的需求,我以 $_GET["str"] 的方式来接受一个传过来的参数,我需要判断一个这个变量是否是整数?而且还要是正整数

 

不用说,大家都知道,$_GET接受传过来的参数都是“字符串”类型。我们就以此为前提往下继续分析!

 

整个思路分两种情况走,如下:

1、如果你确定你的变量是数字,php有内置的判断函数:is_int 检测变量是否是整数;

2、但是,有时候往往我们接收到的变量是数字或数字字符串(如表单输入,它们通常为字符串),这样我们就不能用 is_int()函数来简单判断是否为整数,我们需要用到 is_numeric()和strpos()函数来判断是否为整数。

 

最初,我是想准备用 is_int() 函数的,结果查手册并测试了一下,不能满足我的需求。

is_int() 函数用于检测变量是否是整数。

注意:若想测试一个变量是否是数字或数字字符串(如表单输入,传参,参数接受.....它们通常为字符串),必须使用 is_numeric()。

var_dump(is_int(23)); //bool(true)
var_dump(is_int("23")); //bool(false)
var_dump(is_int(23.5)); //bool(false)
var_dump(is_int(NULL)); //bool(false)
var_dump(is_int("")); //bool(false)

 

最后,当我用 is_numeric() 函数的时候,当我把 $_GET["str"]  赋值为一个小数的时候,is_numeric 直接认为它是一个数字了。很明显,这肯定也不是我想要的。

is_numeric() 函数用于检测变量是否为数字或数字字符串。

$_GET["str"] = 2.2;
var_dump(is_numeric($_GET["str"])); //bool(true)

 

最终,我找到了PHP判断变量是否是整数的?最正确的方法,具体如下:

 

思路:

1、用 is_numeric() 函数判断是否为数字或数字字符串;

2、用 strpos() 函数判断数字中是否含有小数点;

 

示例代码:

if((is_numeric($str)) && (strpos($str,".") == false)){
            echo "是整数";
        }else{
            echo "不是整数";
        }

或者

if(!is_numeric($str) || strpos($str,".")!==false){
  echo "不是整数";
}else{
  echo "是整数";
    A+
发布日期:2020年08月24日 17:43:13  所属分类:PHP
最后更新时间:2020-08-24 17:49:26
付杰
  • ¥ 298.0元
  • 市场价:498.0元
  • ¥ 198.0元
  • 市场价:498.0元
  • ¥ 999元
  • 市场价:4999元
  • ¥ 499.0元
  • 市场价:499.0元

发表评论

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

目前评论:1   其中:访客  0   博主  0

  1. 头像 dilemma~ 5

    今天我正好遇到了PHP需要判断“id正整数、id整数”这个值,果然帮助到了我!