微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何区分PHP中intval()与(int)

本文主要对intval()类型转换、(int)的强制类型转换在功能、定义方面的区别做了一些示例比较,对两者进行区分。

1.intval()函数

语法:

intval ( mixed $value , int $base = 10 ) : int
  • value为要转换成 integer数量

  • base为转化所使用的进制(不填认为10进制)

  • 返回值:int型变量

PS:除非 value一个字符串,否则 base 不会起作用。

示例:

<?PHP
echo intval(42).<br>;                      // 42
echo intval(4.2).<br>;                     // 4
echo intval('42').<br>;                    // 42
echo intval('+42').<br>;                   // 42
echo intval('-42').<br>;                   // -42
echo intval(042).<br>;                     // 34
echo intval('042').<br>;                   // 42
echo intval(1e10).<br>;                    // 1410065408
echo intval('1e10').<br>;                  // 1
echo intval(0x1A).<br>;                    // 26
echo intval(42000000).<br>;                // 42000000
echo intval(420000000000000000000).<br>;   // 0
echo intval('420000000000000000000').<br>; // 2147483647
echo intval(42, 8).<br>;                   // 42
echo intval('42', 8).<br>;                 // 34
echo intval(array()).<br>;                 // 0
echo intval(array('foo', 'bar')).<br>;     // 1
echo intval(false).<br>;                   // 0
echo intval(true).<br>;                    // 1
?>

2.(int)强制转换

示范:

<?PHP
echo (int)42;     // 42
echo <br>;
echo (int)4.2;    // 4
echo <br>;                   
echo (int)'42';   // 42
echo <br>;                    
echo (int)'+42';  // 42
echo <br>;                  
echo (int)'-42';  // -42
echo <br>;                 
echo (int)042;    //  34
echo <br>;                    
echo (int)'042';  // 42
echo <br>;                  
echo (int)1e10;   // 1410065408
echo <br>;                    
echo (int)'1e10'; //2147483647
echo <br>;                
echo (int)0x1A;   // 26
echo <br>;                    
echo (int)42000000;// 42000000
echo <br>;                
echo (int)420000000000000000000;  //-1609564160
echo <br>; 
echo (int)'420000000000000000000'; //2147483647
echo <br>;

/*echo intval(42, 8).<br>;                   
echo intval('42', 8).<br>;              */
/*int的强制转换不是函数,所以无法实现*/  
                
echo (int)array();// 0
echo <br>;                 
echo (int)array('foo', 'bar');//1
echo <br>;     
echo (int)false;   //0
echo <br>;              
echo (int)true;    //1
echo <br>;                   
?>

3.小结:

  1. int的强制转换与intval()函数在面对booleanintfloatarray时两者保持一致(不超出各种类型显示的最大值)。

  2. intval()如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值。如果字符串第一个是‘-',则从第二个开始算起。如果参数是符点数,则返回他取整之后的值。

  3. int 类型最大值为 2147483647一般在类型转换时 如果超过这个最大值 就按最大值显示(int)显示-1609564160

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐