intval()
类型转换、(int)
的强制类型转换在功能、定义方面的区别做了一些示例比较,对两者进行区分。语法:
intval ( mixed $value , int $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.小结:
int
的强制转换与intval()
函数在面对boolean
、int
、float
、array
时两者保持一致(不超出各种类型显示的最大值)。intval()
如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值。如果字符串第一个是‘-',则从第二个开始算起。如果参数是符点数,则返回他取整之后的值。int
类型最大值为2147483647
一般在类型转换时 如果超过这个最大值 就按最大值显示,(int)
则显示-1609564160
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。