int 类型最大值 为 2147483647
一般在类型转换时 如果超过这个最大值 就按最大值显示
$num0 = 3800000099;
var_dump($num0);
echo (int)$num0;
echo "<br />\n";
$num1 = $_GET['num'];
var_dump($num1);
echo (int)$num1;
得到的结果是:
( float ) 3800000099 -494967197string(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