所以,我有一个PHP脚本:
<?
rand(1000000000000,9999999999999);
Run Code Online (Sandbox Code Playgroud)
预期结果是13位数字.
但它正在返回一些奇怪的数字,如:
987419207
1032717476
-455563764
Run Code Online (Sandbox Code Playgroud)
有谁知道发生了什么?
PHP:5.2.17
操作系统:在Debian Squeeze和Windows 7上测试,均为64位
<?
echo rand(10000,99999).rand(10000000,99999999);
Run Code Online (Sandbox Code Playgroud)
使用getrandmax()查看可以从rand()获得的最大值,这显然是一个溢出问题.
你可以使用这个int的2并做一个更长的一个,调用rand为6位数,再为7位数,只是一个想法.