int的最大值、超过最大值后类型转换的不同

来源:互联网 发布:淘宝蓝带体育是正品吗 编辑:程序博客网 时间:2024/04/27 09:26

int 类型最大值 为 2147483647

一般在类型转换时  如果超过这个最大值 就按最大值显示

$num0 = 3800000099;var_dump($num0);echo (int)$num0;echo "<br />\n";$num1 = $_GET['num'];var_dump($num1);echo (int)$num1;


得到的结果是:

(float)3800000099 -494967197

string(11) "38000000099" 2147483647

也许以上的程序你到sae上执行不为会出现这种结果  那是因为sae PHP_INT_MAX这个预定义常量设置的比较大 (9223372036854775807) 超过这个最大值也会得到不一样的结果

自 PHP 4.4.0 和 PHP 5.0.5后,最大值可以用常量PHP_INT_MAX来表示


一开始没有注意  原来php给出的有解释:

http://cn2.php.net/manual/zh/language.types.integer.php

决不要将未知的分数强制转换为 integer,这样有时会导致不可预料的结果。

字符串转成数字 : http://cn2.php.net/manual/zh/language.types.string.php#language.types.string.conversion

原创粉丝点击