Php mt_rand期望参数2为整数,错误地认为给出了float

Php mt_rand期望参数2为整数,错误地认为给出了float,php,xampp,Php,Xampp,警告:mt_rand()要求参数2为整数,浮点值在第6行的E:\Projects\school\users\temp.php中给出 XAMPP中的PHP7.0.2。这段代码在上一次XAMPP安装中运行良好,安装了5.x。所以更新破坏了它。在谷歌上找不到任何东西 如果大整数溢出服务器操作系统上的最大整数值,则会将其存储为浮点数。在32位系统上,它们在2147483647以上溢出。在64位系统上,它们在9223372036854775807以上溢出 如果希望看到服务器上的最大INT值,可以使用var

警告:mt_rand()要求参数2为整数,浮点值在第6行的E:\Projects\school\users\temp.php中给出

XAMPP中的PHP7.0.2。这段代码在上一次XAMPP安装中运行良好,安装了5.x。所以更新破坏了它。在谷歌上找不到任何东西


如果大整数溢出服务器操作系统上的最大整数值,则会将其存储为浮点数。在32位系统上,它们在2147483647以上溢出。在64位系统上,它们在9223372036854775807以上溢出

如果希望看到服务器上的最大INT值,可以使用var_dump(PHP_INT_MAX)

如果您想确保无论它在哪个系统上运行,它都不会溢出,那么可以使用mt_getrandmax()作为第二个参数

mt_rand(1000000000, 9999999999);

将参数2更改为整数。

mt_rand(1000000000, mt_getrandmax())

似乎工作正常:这很奇怪,我在前面加载了一个有错误的页面。奇怪。在32位系统上,任何超过2147483647的数据都将自动成为浮点。我似乎不能强迫PHP7.0.2创建这个警告:
error\u reporting(E\u ALL);var_dump(百万兰特(1.5,2.5))32位PHPV64位PHP实际上我刚刚检查了旧版本的PHP也是x86。新的也是。两者的
PHP\u INT\u MAX
值均为214783647。所以唯一改变的是php版本。代码在旧版本中运行良好。我也不记得更改过任何php.ini设置。
mt_rand(1000000000, 8888888888);