【问题标题】:What does (int) $_GET['page'] mean in PHP?(int) $_GET['page'] 在 PHP 中是什么意思?
【发布时间】:2011-12-17 23:58:07
【问题描述】:

我尝试查找 (int),但只能在 PHP 手册中找到函数 int() 的文档。

有人可以向我解释一下上面的代码是做什么的,以及它是如何工作的吗?

【问题讨论】:

    标签: php int


    【解决方案1】:

    您可以在手册的type juggling: type casting 部分找到它。 (int) 将值强制转换为 int 并且是一种语言结构,这就是它看起来“有趣”的原因。

    【讨论】:

      【解决方案2】:

      无论变量的值是什么,它都会转换(至少尝试)为整数。如果有任何字母等,前面将转换为0。

      <?php
      
      $var = '1a';
      
      echo $var;               // 1a
      echo (int) $var;     //1
      
      $var2 = 'a2';
      echo $var2;           //a2
      echo (int) $var2;     // 0
      

      ?>

      【讨论】:

        【解决方案3】:

        (int) 将值转换为整数。

        <?php
        $test = "1";
        echo gettype((int)$test);
        ?>
        
        $ php test.php
        integer
        

        【讨论】:

          【解决方案4】:

          在 PHP 中,(int) 会将其后面的值转换为 int

          例子:

          php > var_dump((int) "5");
          int(5)
          

          我相信语法是从 C 中借来的。

          【讨论】:

            【解决方案5】:

            您在此处查看的内容称为类型转换 - 有关详细信息,请参阅type juggling 上的手册页。

            上述代码将$_GET['page'] 转换(或转换)为整数。

            【讨论】:

              【解决方案6】:

              简单的例子会让你明白:

              var_dump((int)8);
              var_dump((int)"8");
              var_dump((int)"6a6");
              
              var_dump((int)"a6");
              
              var_dump((int)8.9);
              var_dump((int)"8.9");
              var_dump((int)"6.4a6");
              

              结果:

              int(8)
              int(8)
              int(6)
              
              int(0)
              
              int(8)
              int(8)
              int(6)
              

              【讨论】:

                【解决方案7】:

                这种语法(int) 称为类型转换。基本上,它需要跟随它的变量并试图强制它成为int

                【讨论】:

                  【解决方案8】:

                  【讨论】:

                  • 这并不完全正确:(int) 是一个类型转换(参见:php.net/manual/en/…),而 int() 甚至不存在。我认为您指的是intval(),它本身就是一个函数,因此执行时间比类型转换要长一些,并提供了提供转换基础的能力。此答案中还讨论了其他差异:stackoverflow.com/questions/1912599/…
                  【解决方案9】:

                  它将后面的变量转换为整数。来自文档的更多信息: http://php.net/manual/en/language.types.type-juggling.php

                  PHP 中的类型转换与 C 中的工作方式非常相似: 想要的类型写在变量之前的括号中 被铸造。

                  允许的演员表是:

                  • (int), (integer) - 转换为整数
                  • (bool), (boolean) - 转换为布尔值
                  • (float), (double), (real) - 转换为浮点数
                  • (字符串)- 转换为字符串
                  • (数组)- 转换为数组(对象)- 转换为对象
                  • (未设置)- 强制转换为 NULL

                  【讨论】:

                    猜你喜欢
                    • 2011-01-07
                    • 1970-01-01
                    • 1970-01-01
                    • 2015-08-28
                    • 2011-06-05
                    • 1970-01-01
                    • 2011-01-11
                    • 2011-01-24
                    • 2016-09-06
                    相关资源
                    最近更新 更多