【问题标题】:What is the use of PHP function is_int()?PHP函数is_int()有什么用?
【发布时间】:2013-03-29 06:24:42
【问题描述】:

我只是想知道为什么 php 有一个像is_int() 这样的函数。文档说

测试一个变量是数字还是数字字符串(比如表单输入,总是字符串)

我确信没有人需要检查静态分配的变量的类型。所以有人请告诉我会不会有什么情况,is_int()这个功能真的有用吗?

【问题讨论】:

  • such as form input:这不是静态分配的。用户可以输入3(整数)或3.5(浮点数)。
  • @Antony:但是对于所有来自表单元素的用户输入,它将返回 false,因为它被视为字符串(对于 33.5
  • @blessed 看看我的回答。

标签: php function logic


【解决方案1】:

完整的理解解决方案....

这是代码

 <?php
  $values = array(23, "23", 23.5, "23.5", null, true, false);
  foreach ($values as $value) {
   echo "is_int(";
  var_export($value);
    echo ") = ";
       var_dump(is_int($value));
     }
       ?>

这是输出

     is_int(23) = bool(true)
     is_int('23') = bool(false)
    is_int(23.5) = bool(false) 
   is_int('23.5') = bool(false) 
     is_int(NULL) = bool(false)
    is_int(true) = bool(false)
      is_int(false) = bool(false)

【讨论】:

    【解决方案2】:

    考虑一个用户表单输入:

    $_POST['integer'] = "3";
    $integer = +$_POST['integer']; // convert to a number
    var_dump(is_int($integer)); // bool(true)
    
    $_POST['float'] = "3.5";
    $float = +$_POST['float']; // convert to a number
    var_dump(is_int($float)); // bool(false)
    

    【讨论】:

      【解决方案3】:

      此功能在以下场景中很有用,

      $a = 5;
      
      
      //some functionality
      function passbyref(&$b)
      {
          $b = "45";
      }
      
      
      passbyref($a);
      
      
      if(is_int($a))
      {
         print "Yes it is int";
      }
      

      【讨论】:

        【解决方案4】:

        判断给定变量的类型是否为integer

        这是我找到的例子:

        $values = array(23, "23", 23.5, "23.5", null, true, false);
            foreach ($values as $value) {
                echo "is_int(";
                var_export($value);
                echo ") = ";
                var_dump(is_int($value));
            }
        

        上面的例子会输出:

        is_int(23) = bool(true)
        is_int('23') = bool(false)
        is_int(23.5) = bool(false)
        is_int('23.5') = bool(false)
        is_int(NULL) = bool(false)
        is_int(true) = bool(false)
        is_int(false) = bool(false)
        

        了解更多:Click here

        【讨论】:

          猜你喜欢
          • 2019-06-10
          • 2010-12-03
          • 2010-09-29
          • 1970-01-01
          • 2015-07-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多